4

問題

Docker で新しいコンテナーを開始するときに、ボリュームをマウントして、ホスト マシン上の任意のファイルに最新の更新を取得し、コンテナーでそれらを操作できるようにしたいと考えています。ただし、私が見つけたのは、イメージをビルドするときに Docker がボリュームをマウントしていることです。代わりに、新しいコンテナーを作成するときにボリュームをマウントする必要があります。

私は Docker を使用して開発環境を管理しているため、コードの一部を更新するたびに、開発環境の Dockerイメージを再構築する必要があり、これには通常 20 ~ 30 分かかります。明らかに、これは私が Docker に求めている機能ではありません。

開発環境コンテナーを構築するために使用しているものは次のとおりです。


Dockerfile

# This docker file constructs an Ubuntu development environment and configures the compiler/libs needed
FROM ubuntu:latest

ADD . /gdms-rcon/liaison
WORKDIR /gdms-rcon/liaison

RUN rm -rf ./build
RUN apt-get update
RUN apt-get install -y -f gcc g++ qtbase5-dev cmake mysql-client

fig.yml

liaison:
  build: ./liaison/
  command: /bin/bash
  volumes:
    - liaison:/gdms-rcon/liaison
  working_dir: /gdms-rcon/liaison

fig.ymlまた、ビルドを簡単にするためにファイルを使用します。

実行するには、次を使用します。fig build

コンテナーにアクセスしてソース コードをコンパイルするには、次を使用します。docker run -it <container_id>

多分私は私のコマンドで何か間違ったことをしていますか? fig upインタラクティブなシェルが得られないため、使用しませんdocker run -it <container_id>。代わりに使用します。ボリュームを自動的にマウントするように使用figすることにしましたが、期待どおりに機能しません。


これは私の問題をより明確に示すための画像です

ここに画像の説明を入力

4

1 に答える 1

1

figコンテナを開始するために使用していない場合volumes、あなたの行はfig.yml何も役に立ちません。インタラクティブなシェルが必要な場合figは、実際にはあなたのためのツールではありません.

docker build通常どおりイメージを作成し、フラグを使用して-vボリュームdocker runをマウントします。

docker run -it -v <hostpath>:<containerpath> <imageid>
于 2015-03-01T02:41:17.943 に答える