从 shell 脚本在 payara micro docker 图像中部署应用程序
Deploy application in payara micro docker image from shell script
我尝试 运行 payara/micro docker 图像并从 maven 目标目录部署我的应用程序(war 文件)。
我使用这张图片:
https://hub.docker.com/r/payara/micro
在页面上,我正在关注 Run from a mounted volume
部分。
我的 shell 脚本(在根目录中)如下所示:
#!/bin/bash
set -eu
mvn clean package
docker run --rm \
-p 8080:8080 \
-v ~/target:/opt/payara/deployments \
payara/micro
但是当我 运行 脚本时,没有应用程序部署到 payara 服务器。我尝试用 -v $(pwd)/target:/opt/payara/deployments \
更新行但没有成功,并且在包含我的 war 文件的目标文件夹旁边的根文件夹中创建了一个名为 target;C
的新空文件夹。
我想我的问题是;我如何 运行 payara/micro
容器并将我的 target/myapp.war
文件从我的 shell 脚本部署到服务器?
由于我还没有得到答案,我想添加我自己的解决方案。我有点作弊,但它还是奏效了。我将 shell 脚本与 Dockerfile 组合在一起。
我将这个 Dockerfile 添加到我的项目根目录中:
FROM payara/micro
COPY target/myapp.war $DEPLOY_DIR
然后,我更新了我的 shell 脚本,如下所示:
#!/bin/bash
set -eu
mvn clean package
docker build -t my-image .
docker run -p 8080:8080 my-image
现在一切正常。
我尝试 运行 payara/micro docker 图像并从 maven 目标目录部署我的应用程序(war 文件)。
我使用这张图片: https://hub.docker.com/r/payara/micro
在页面上,我正在关注 Run from a mounted volume
部分。
我的 shell 脚本(在根目录中)如下所示:
#!/bin/bash
set -eu
mvn clean package
docker run --rm \
-p 8080:8080 \
-v ~/target:/opt/payara/deployments \
payara/micro
但是当我 运行 脚本时,没有应用程序部署到 payara 服务器。我尝试用 -v $(pwd)/target:/opt/payara/deployments \
更新行但没有成功,并且在包含我的 war 文件的目标文件夹旁边的根文件夹中创建了一个名为 target;C
的新空文件夹。
我想我的问题是;我如何 运行 payara/micro
容器并将我的 target/myapp.war
文件从我的 shell 脚本部署到服务器?
由于我还没有得到答案,我想添加我自己的解决方案。我有点作弊,但它还是奏效了。我将 shell 脚本与 Dockerfile 组合在一起。
我将这个 Dockerfile 添加到我的项目根目录中:
FROM payara/micro
COPY target/myapp.war $DEPLOY_DIR
然后,我更新了我的 shell 脚本,如下所示:
#!/bin/bash
set -eu
mvn clean package
docker build -t my-image .
docker run -p 8080:8080 my-image
现在一切正常。