[英]Issues with volume mounting with Docker-compose
每當我對我的rails應用程序中的任何控制器(或一般文件)進行更改時,我都看不到它們出現,直到我運行docker-compose down
是docker-compose build
,最后是docker-compose up
。 基本上,我必須完全重建項目並再次運行以使我的更改生效。
顯示的唯一更改是對視圖所做的更改。
我目前獲得環境設置的過程是:
我錯過了什么? 我正在使用Docker for Windows。
我的docker-compose.yml如下:
version: '2'
services:
db:
image: postgres
environment:
POSTGRES_DB: dev
POSTGRES_USER: user
POSTGRES_PASSWORD: password
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
Dockerfile如下:
FROM ruby:2.3.1
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp
您是否嘗試過在docker-compose文件中設置音量?
https://docs.docker.com/v1.8/compose/yml/#volumes
- HOST_PATH:CONTAINER_PATH
web:
volumes:
- ./src:/app/user/src
您不需要在Dockerfile中創建路徑:
RUN mkdir /myapp
如果你將它掛載在docker-compose.yml中
volumes:
- .:/myapp
請刪除行:
ADD . /myapp
我認為這是問題 -
ADD指令從中復制新文件,目錄或遠程文件URL,並將它們添加到路徑中容器的文件系統中。 ( https://docs.docker.com/engine/reference/builder/#/add )
所以看起來這個命令只復制文件一次而不是掛載它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.