當我從官方的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