当我从官方的Docker Hub Repository中提供Golang应用程序时,我想知道应用程序将启动的默认工作目录是什么?Docker Golang应用程序的工作目录是什么?
背景:我将不得不将本地证书颁发机构和服务器密钥映射到容器以便为TLS https服务,我不知道将它们映射到应用程序的哪个位置将能够从应用程序的当前工作目录中获取它们容器?
当我从官方的Docker Hub Repository中提供Golang应用程序时,我想知道应用程序将启动的默认工作目录是什么?Docker Golang应用程序的工作目录是什么?
背景:我将不得不将本地证书颁发机构和服务器密钥映射到容器以便为TLS https服务,我不知道将它们映射到应用程序的哪个位置将能够从应用程序的当前工作目录中获取它们容器?
如果您使用的是golang:从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
golang应用程序的当前工作目录启动withi因此Docker容器是/go/src/app
。为了一个文件/目录映射到一个容器中,你会HABE作为Documentation for run描述使用-v
-switch:
-v /local/file.pem:/go/src/app/file.pem
将映射本地文件到dockerized golang应用的PWD。
你在问什么golang图像为WORKDIR设置?您可以在[DOCKERFILE]中看到它(https://github.com/docker-library/golang/blob/0ce80411b9f41e9c3a21fc0a1bffba6ae761825a/1.6/Dockerfile) – JimB
但是,这是构建的WORKDIR,而不是可执行文件最终存储的位置并呼吁,或?取决于它是去建设还是去安装。我很少理解Dockerfile的语义 – JohnDoe
“[WORKDIR](https://docs.docker.com/engine/reference/builder/#workdir)指令设置任何RUN,CMD,进入点,复制和添加的工作目录在Dockerfile中遵循它的指令“您也可以在DOCKERFILE中自己设置WORKDIR,或使用绝对路径来定位文件。 – JimB