docker - 如何重命名和删除 Dockerfile 中的文件

标签 docker docker-compose

在本地当 docker 复制文件时,我有一个包含 2 个文件的文件夹:

数据库.yml
数据库.docker.yml

当我跑 docker-compose up我想删除文件 database.yml然后重命名另一个文件 database.docker.ymldatabase.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/

相关文章:

docker - 本地化无法在 VS2017 中使用 docker-compose(Docker for Linux)以 Release模式构建应用程序

Docker-compose:将主机名设置为等于容器运行所在的主机名

c# - .NET Core C# 中的 Azure App Service Container Managed Identity Key Vault

docker - 如何将容器从一个节点移动到另一个节点?

git - 为微服务存储子模块,但仍然使用 fork

Docker 在容器内构建后安装

security - 围绕ENTRYPOINT的Docker安全性问题

docker - 我可以使用docker自动产生整个微服务的实例吗?

docker - 带有2个可执行项目的Dockerize .NET解决方案

wordpress - 在 docker 容器中的 nginx 上进行 Woocommerce webhook 调试