ローカルホストでGitデーモンをホストしました。つまり'/usr/bin/git daemon --listen=127.0.0.1 --base-path=/opt'
systemd
サービスとして、Dockerコンテナからアクセスしようとしています。ポートを外部ネットワークに公開したくないので、ポートについては触れませんでした。
Dockerfile:
RUN git clone git://127.0.0.1/repo/ repo_dir
しかし、それは機能しておらず、コンテナ内でコンテナのローカルホストに接続しようとしているように見えます。
では、Dockerコンテナからホストマシンのローカルホストに接続するにはどうすればよいですか?
動作しておらず、コンテナ内でコンテナのローカルホストに接続しようとしているように見えます。
はい、それは_docker build
_(Dockerfile行ごとに1つのコンテナーを構築し、それを中間イメージにコミットする)でさえ、コンテナーによって提供される分離の背後にあるすべてのアイデアです。
OP dhairya によってコメントされ、ドキュメントで言及されているように、コメントで参照しました: " Dockerコンテナネットワーク "および _docker build
_ 、ビルド中にRUN
命令のネットワークモードをHostに設定できます。その場合、localhost
はホストlocalhost。
_ docker build --network="Host"
_
これは、 API 1.25+のみ 、 docker v.1.13.0-rc5 (2017年1月)以降です。
_
POST /build
_は、ビルド中に使用されるネットワークを指定するためにnetworkmode
パラメーターを受け入れます。
ただし、実際にビルドされたイメージにGitが必要ない場合(メインプロセスを実行するため)、Gitの方が簡単です。
dockerfileで COPY
ディレクティブ を使用して、チェックアウトされたGitリポジトリを表すHostフォルダーをコピーします。
注:_.git/
_を not コピーするために、_.dockerignore
_(Dockerfileと同じフォルダー内のファイル)に_repo_dir/.git
_:を追加します。 (SOMECODE)__ターゲットイメージにgitがない場合は、そのクローンリポジトリのフォルダー。
_COPY repo_dir .
_
(ここで、 '_.
_'は、構築中のイメージ内の現在のWORKDIR
を表します)