每当我对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
答案 0 :(得分:0)
您是否尝试过在docker-compose文件中设置音量?
https://docs.docker.com/v1.8/compose/yml/#volumes
- HOST_PATH:CONTAINER_PATH
web:
volumes:
- ./src:/app/user/src
答案 1 :(得分:0)
您不需要在Dockerfile中创建路径:
RUN mkdir /myapp
如果你将它挂载在docker-compose.yml
中volumes:
- .:/myapp
请删除行:
ADD . /myapp
我认为这是问题 -
ADD指令复制新文件,目录或远程文件URL 来自并将它们添加到容器的文件系统中 路径。 (https://docs.docker.com/engine/reference/builder/#/add)
所以看起来这个命令只复制文件一次而不是挂载它们。