【发布时间】:2020-10-26 14:49:14
【问题描述】:
我正在通过 Payara Server (micro) 在 docker 容器中部署一个 java web 应用程序。
为了简化部署,我不打算通过 Dockerfile 使用自定义 Docker 映像,而只是通过 docker run 命令启动我的应用程序。
我目前正在使用 3 个不同的卷:
- 一个用于将我的 .war 文件部署到自动部署文件夹 /opt/payara/deployments
- 一个用于我的 Java 应用程序使用的配置文件 (.properties)
- 用于收集日志的工具
问题是卷创建的文件夹都归根用户所有,因此 Payara 无法访问。
例如,configuration.properties 文件进入 /etc 文件夹,该文件夹在 payara/micro 映像中默认不存在,因此它由卷自动创建,但以 root 作为所有者而不是 Payara。
我想知道是否有无需创建特定 Dockerfile 即可解决此问题的方法。我已经构建了一个自定义映像,我在 Dockerfile 中使用 RUN 命令来创建这些目录,但这不是我想要在这里做的。
这是我当前使用的 docker run 命令:
docker run -dp 8080:8080 --name app -e KEY1="1" -e KEY2="2" -v $(pwd)/app.war:/opt/payara/deployments/app.war -v $(pwd)/configuration.properties:/opt/payara/etc/my-app/configuration.properties -v $(pwd)/logs:/opt/payara/var/my-app/api/log payara/micro
【问题讨论】: