在本地当 docker 复制文件时,我有一个包含 2 个文件的文件夹:
数据库.yml
数据库.docker.yml
当我跑 docker-compose up
我想删除文件 database.yml
然后重命名另一个文件 database.docker.yml
至 database.yml
这就是我现在所拥有的,但它不起作用:
ADD . /app
RUN rm /app/config/database.yml
RUN mv /app/config/database.docker.yml /app/config/database.yml
我为此服务的 docker-compose 是:
rails:
build: ../rails-web
volumes:
- ../rails-web:/app
ports:
- "3000:3000"
depends_on:
- db
command: puma -C config/puma.rb
env_file:
- '.env'
最佳答案
你的问题是在构建过程中你添加了 /app
,删除旧配置并移动新配置。但随后 docker-compose up
启动容器并覆盖 /app
文件夹与您的本地文件夹 - 通过将其映射到您的 volumes
指示。
使固定? EITHER
删除 volumes
来自 docker-compose.yml
-- 但在这种情况下,每次对代码进行更改时都必须重新构建镜像。 OR
重写 volumes
像这样:
rails:
...
volumes:
- ../rails-web:/app
- ../rails-web/config/database.docker.yml:/app/config/database.yml
...
它会将 docker 配置映射到您的“旧”配置。
关于docker - 如何重命名和删除 Dockerfile 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52431384/