背景:我需要更改 payara-server 主密码。根据文档,主密码必须与 keystore 和信任库中的密码匹配,SSL 证书才能正常工作。让我的网站在 https 而不是 http 上运行。
我让 Payara-Server 在 Docker Container through the guide 中运行:
我尝试更改 payaradomain 主密码,但出现非循环错误。 1. 确保 payara-domain 没有运行。
- ./asadmin stop-domain --force=true payaradomain
当我运行这个命令时,domain1 反而被杀死了。 & 然后被踢出 docker 容器:
./asadmin stop-domain --kill=true payaradomain
当我执行这个命令时:
./asadmin list-domains
响应:
domain1 running
payaradomain not running
Command list-domains executed successfully.
然后尝试命令:
./asadmin stop-domain --force=true payaradomain
响应:
CLI306: Warning - The server located at /opt/payara41/glassfish/domains/payaradomain is not running.
我对此很满意,但是当我尝试时:
./asadmin change-master-password payaradomain
我收到这样的回复:
Domain payaradomain at /opt/payara41/glassfish/domains/payaradomain is running. Stop it first.
我附上了下面的图片:请帮忙...
最佳答案
如果你想在 docker 中配置 Payara 服务器,包括主密码,你应该通过扩展默认的 Payara docker 镜像来创建你自己的 docker 镜像来实现。这是最简单的 Dockerfile:
FROM payara/server-full
# specify a new master password "newpassword" instead of the default password "changeit"
RUN echo 'AS_ADMIN_MASTERPASSWORD=changeit\nAS_ADMIN_NEWMASTERPASSWORD=newpassword' >> /opt/masterpwdfile
# execute asadmin command to apply the new master password
RUN ${PAYARA_PATH}/bin/asadmin change-master-password --passwordfile=/opt/masterpwdfile payaradomain
然后您可以构建您的自定义 docker 镜像:
docker build -t my-payara/server-full .
然后运行 my-payara/server-full
而不是 payara/server-full
。
另请注意,对于默认的 Payara docker 镜像,您应该指定 PAYARA_DOMAIN 变量来运行 payaradomain 而不是 domain1,例如:
docker run --env PAYARA_DOMAIN=payaradomain payara/server-full
上面的示例 Dockerfile 重新定义了这个变量,以便默认使用 payaradomain,而无需在运行容器时指定它。
更改主密码的替代方法
您也可以在不运行 Payara Server 的情况下运行 docker 镜像。相反,您可以先运行 bash shell,在控制台中执行必要的命令,然后从 shell 运行服务器。
为此,您将运行 docker 镜像:
docker run -t -i --entrypoint /bin/bash payara/server-full
这种方法的缺点是 docker 容器在前台运行,如果您重新启动它,则必须手动重新启动 payara 服务器,因此它实际上仅用于测试目的。
关于ssl - 在 Payara/Glassfish 服务器上更改主密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47411022/