公式のDocker HubリポジトリからGolangアプリケーションを提供するとき、アプリケーションが起動するデフォルトの作業ディレクトリは何でしょうか?Docker Golangアプリケーションの作業ディレクトリとは何ですか?
背景:TLS httpsに対応するために、ローカル認証局とサーバーキーをコンテナにマップする必要があります。アプリケーションにマップする場所が、アプリケーション内の現在の作業ディレクトリで取得できますか?コンテナ?
公式のDocker HubリポジトリからGolangアプリケーションを提供するとき、アプリケーションが起動するデフォルトの作業ディレクトリは何でしょうか?Docker Golangアプリケーションの作業ディレクトリとは何ですか?
背景:TLS httpsに対応するために、ローカル認証局とサーバーキーをコンテナにマップする必要があります。アプリケーションにマップする場所が、アプリケーション内の現在の作業ディレクトリで取得できますか?コンテナ?
あなたはgolangを使用している場合:DockerHubから1.X-onbuild画像は、これはあなたが
docker build
を実行したディレクトリからすべてのファイルとディレクトリを意味します(
https://hub.docker.com/_/golang/)
/go/src/app
にコピーされます
コマンドがコンテナにコピーされます。
そして、すべての画像のWORKDIRがある
/go
Goが使用して現在の作業ディレクトリを返します
currdir, _ = filepath.Abs(filepath.Dir(os.Args[0]))
golangコンテナ内で実行され、右の起動後、PWDが
に設定されています/go/src/app
iで起動するgolangアプリケーションの現在の作業ディレクトリn Dockerコンテナはこうして/go/src/app
です。コンテナにファイル/ディレクトリをマップするためには、Documentation for runで説明したように-v
-switchを使用するhabeます:
-v /local/file.pem:/go/src/app/file.pem
はdockerized golangアプリのPWDにローカルファイルをマッピングします。
ゴールデンイメージが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、ENTRYPOINT、COPY、ADDの作業ディレクトリを設定しますDockerfileでそれに続く指示 "DOCKERFILEでWORKDIRを自分で設定することも、絶対パスを使ってファイルを見つけることもできます。 – JimB