【问题标题】:Can't overwrite file in docker compose无法覆盖docker compose中的文件
【发布时间】:2017-06-06 12:02:18
【问题描述】:

我正在使用 docker compose 来设置 payara 服务器,并且需要覆盖 domain.xml 文件。我目前正在通过

volumes: - './domain.xml:/opt/payara41/glassfish/domains/domain1/config/domain.xml' 但是当我用docker-compose up 编写它时,它一直说它无法将 domain.xml 重命名为 domain.xml.bak。有什么办法可以让我获得覆盖它的权限或确保重命名有效?

【问题讨论】:

  • 为什么你需要覆盖你明确挂载的东西?
  • 我不想挂载它,我想复制它。但我似乎找不到复制它的方法
  • 最好挂载一个config文件夹,这样会覆盖domain.xml文件吗?
  • 是的,这是一个不错的解决方案。很多项目都是这样做的

标签: docker docker-compose payara


【解决方案1】:

这样的事情应该可以工作:

command: sh -c 'cp /tmp/domain.xml /opt/payara41/glassfish/domains/domain1/config/domain.xml && YOUR_PREVIOUS_COMMAND'
volumes:
   - ./domain.xml:/tmp/domain.xml

如果是脚本,则编辑您当前的command(或CMD),添加副本。


编辑:这个替代方案非常方便和优雅。

command: sh /run-from-compose.sh
volumes:
   - ./domain.xml:/tmp/domain.xml
   - ./run-from-compose.sh:/run-from-compose.sh

从-compose.sh 运行:

#!/bin/sh
cp /tmp/domain.xml /opt/payara41/glassfish/domains/domain1/config/domain.xml

YOUR_PREVIOUS_COMMAND

你不需要修改镜像,只需挂载一个自定义脚本,充当command。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多