什么是Docker Golang应用程序的工作目录?

当我从官方的Docker Hub Repository中为Golang应用程序提供服务时,我想知道应用程序将启动的默认工作目录是什么?

背景:我将不得不将映射到容器的本地证书颁发机构和服务器密钥映射到TLS https,我不知道在哪里映射到应用程序将能够从容器内的应用程序的当前工作目录中抓取它们?

如果您使用的是golang:1. DockerHub中的1.X-onbuild图像将被复制到( https://hub.docker.com/_/golang/

/go/src/app 

这意味着您运行该目录的所有文件和目录

 docker build 

命令将被复制到容器中。

所有图像的工作目录是

 /go 

Go将使用返回当前工作目录

 currdir, _ = filepath.Abs(filepath.Dir(os.Args[0])) 

在golang容器中执行,并在启动后立即将pwd设置为

 /go/src/app 

因此,在Docker容器中启动的golang应用程序的当前工作目录是/go/src/app 。 为了将一个文件/目录映射到一个容器中,你将会使用-v -switch命令来执行 :

 -v /local/file.pem:/go/src/app/file.pem 

将一个本地文件映射到dockerized golang应用程序的pwd。