Ruby on rails 如何在不运行docker compose build的情况下更新容器代码?
当我在开发过程中对任何代码进行更改时,直到我再次运行Ruby on rails 如何在不运行docker compose build的情况下更新容器代码?,ruby-on-rails,ruby,docker,docker-compose,Ruby On Rails,Ruby,Docker,Docker Compose,当我在开发过程中对任何代码进行更改时,直到我再次运行docker compose-up--build,更改才会反映出来 Dockerfile: RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install COPY . /myapp 。。。和docker compose.yml: server: tty: true
docker compose-up--build
,更改才会反映出来
Dockerfile
:
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
。。。和docker compose.yml
:
server:
tty: true
stdin_open: true
build: .
command: bash -c "rm -f tmp/pids/server.pid && rake db:create && rake db:migrate && bundle exec rails s -p 3000 -b '0.0.0.0'"
links:
- db
- redis
volumes:
- ./myapp
这个设置在我的操作系统上运行得很好,不知道为什么它在Windows上运行得不一样。
本地存储的文件夹结构C:/users/docker/projects/myapp
非常感谢您的帮助在此处找到解决方案:
这对我有用
右键单击目录
单击属性
单击安全选项卡
单击“编辑”按钮。
单击添加按钮
在文本框中键入“用户”
单击“检查名称”(应自动填写/更新)
点击OK
突出显示新添加的组。
10 . 在“对[用户/组名]的权限”下,选择完全控制
单击应用
单击“确定”
单击“确定”看起来您已经注释掉了
docker compose.yml中/myapp
的卷映射docker compose.yml
-在Dockerfile
中的复制是生成映像时完成的时间点复制,volumes
映射基本上是在运行时按预期路径将本地签出装载到容器中(删除volumes
映射,您将运行生成映像时复制到映像中的签出版本)。@masseyb,我在问题中对其进行了评论,我修正了这个问题。这并不能解决问题。