1. ホーム

[解決済み】docker composeでホストディレクトリをボリュームとしてマウントする方法

2022-04-06 03:26:45

質問

開発環境をDocker化していますが、Dockerイメージを再構築することなく変更をライブリロードする機能が欲しいのです。アプリの依存関係にredisがあるため、docker composeを使用しており、redisコンテナをリンクできるようにしたいです。

の中に2つのコンテナを定義しています。 docker-compose.yml :

node:
  build: ./node
  links:
    - redis
  ports:
    - "8080"
  env_file:
    - node-app.env

redis:
  image: redis
  ports:
    - "6379"

に辿り着きました。 node アプリの dockerfile にボリュームを追加しますが、ホストディレクトリをボリュームにマウントして、コードへのライブ編集をすべてコンテナに反映させるにはどうしたらよいでしょうか。

これが現在の私のDockerfileです。

# Set the base image to Ubuntu
FROM    node:boron

# File Author / Maintainer
MAINTAINER Amin Shah Gilani <[email protected]>

# Install nodemon
RUN npm install -g nodemon

# Add a /app volume
VOLUME ["/app"]

# TODO: link the current . to /app

# Define working directory
WORKDIR /app

# Run npm install
RUN npm install

# Expose port
EXPOSE  8080

# Run app using nodemon
CMD ["nodemon", "/app/app.js"]

私のプロジェクトはこのような感じです。

/
- docker-compose.yml
- node-app.env
- node/
  - app.js
  - Dockerfile.js

解決方法は?

チェックアウト ドキュメント

見たところ、docker-compose.ymlで以下のようにすることができそうです。

volumes:
    - ./:/app

ここで ./ はホストディレクトリ、そして /app はコンテナのターゲットディレクトリです。


EDIT

以前のドキュメントのソースはバージョン履歴につながるようになりましたので、使用しているcomposeのバージョンを選択し、リファレンスを探す必要があります。

怠け者のために-。 v3 / v2 / v1

注:この編集の時点では、構文はすべてのバージョンで同じです。