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

Ssl Docker Golang应用程序的工作目录是什么?,ssl,go,docker,https,Ssl,Go,Docker,Https,当我从Docker Hub官方存储库中为Golang应用程序提供服务时,我想知道应用程序启动的默认工作目录是什么 背景:我必须将本地证书颁发机构和服务器密钥映射到容器中以提供TLS https,我想知道将它们映射到应用程序的何处才能从容器中在应用程序的当前工作目录中获取它们?如果您使用的是来自DockerHub的golang:1.X-onbuild映像,将被复制变成 这意味着您运行 docker build 命令将被复制到容器中 所有图像的workdir都是 /go Go将使用返回当前工作

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


背景:我必须将本地证书颁发机构和服务器密钥映射到容器中以提供TLS https,我想知道将它们映射到应用程序的何处才能从容器中在应用程序的当前工作目录中获取它们?

如果您使用的是来自DockerHub的golang:1.X-onbuild映像,将被复制变成

这意味着您运行

docker build 
命令将被复制到容器中

所有图像的workdir都是

/go

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

currdir, _ = filepath.Abs(filepath.Dir(os.Args[0]))
在golang容器内执行,启动后立即将pwd设置为

/go/src/app
因此,Docker容器中启动的golang应用程序的当前工作目录为
/go/src/app
。要将文件/目录映射到容器中,您必须使用
-v
-开关,如中所述:


将本地文件映射到停靠的golang应用程序的pwd。

您是否询问golang图像为WORKDIR设置了什么?您可以在中看到它,但这是构建的WORKDIR,而不是最终存储和调用可执行文件的地方,或者?这取决于它是直接构建还是直接安装。我几乎不理解Dockerfile s的语义“该指令为Dockerfile中的任何运行、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录”,您也可以在Dockerfile中自行设置WORKDIR,或使用绝对路径来定位文件。当我运行docker RUN时-v/home/local/cert.pem:/go/cert,pem并尝试在其抱怨“未找到文件”的程序中打开cert.pem。因此,看起来,/go/不是应用程序正在执行的PWD吗?@JohnDoe:执行
PWD
ls
并查看您所在的位置和目录中的内容。
/go/src/app
-v /local/file.pem:/go/src/app/file.pem