无法覆盖 docker 撰写中的文件
Can't overwrite file in docker compose
我正在使用 docker compose 设置 payara 服务器,需要覆盖 domain.xml 文件。我目前正在通过
volumes:
- './domain.xml:/opt/payara41/glassfish/domains/domain1/config/domain.xml'
但是当我用 docker-compose up
组合它时,它一直说它无法将 domain.xml 重命名为 domain.xml.bak。有什么办法可以获得覆盖它的权限或确保重命名有效吗?
像这样的东西应该可以工作:
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
。
我正在使用 docker compose 设置 payara 服务器,需要覆盖 domain.xml 文件。我目前正在通过
volumes:
- './domain.xml:/opt/payara41/glassfish/domains/domain1/config/domain.xml'
但是当我用 docker-compose up
组合它时,它一直说它无法将 domain.xml 重命名为 domain.xml.bak。有什么办法可以获得覆盖它的权限或确保重命名有效吗?
像这样的东西应该可以工作:
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
。