必须启用Secure Admin才能远程访问DAS – 使用Docker访问Glassfishpipe理控制台

我尝试在Docker容器上的glassfish上部署我的web应用程序。 当我访问pipe理控制台([IP]:4848)时,我可以访问login页面,但出现此错误消息,我无法login:

必须启用安全pipe理才能远程访问DAS。

所以我发现在其他职位,我需要在bin文件夹中添加这些行:

./asadmin start-domain ./asadmin change-admin-password ./asadmin enable-secure-admin ./asadmin stop-domain ./asadmin start-domain 

但我不能这样做,因为我的glassfish实例在一个容器上。

有关信息,我运行glassfish:

 sudo docker run -p 4848:4848 -p 8080:8080 -e GLASSFISH_PASS="password" -d glassfish 

有几种方法可以做到这一点,但最好的办法可能是复制Payara Server dockerfile中使用的方法 。 (Payara Server是从GlassFish派生的,因此dockerfile也与GlassFish兼容)

总结一下,这个方法创build了2个文件:一个包含默认(空)密码和所需新密码的tmpfile ,以及一个pwdfile包含新更改文件的pwdfile

如果tmpfile的内容是:

 AS_ADMIN_PASSWORD= AS_ADMIN_NEWPASSWORD=MyNewPassword 

那么pwdfile的内容应该是:

 AS_ADMIN_PASSWORD=MyNewPassword 

要使用asadmin更改密码,第一个文件必须与change-admin-password命令一起使用,第二个文件必须与将来的所有命令一起使用。

在docker方面,这看起来像这样(直接从上面链接的dockerfile中获取):

 ENV PAYARA_PATH /opt/payara41 ENV ADMIN_USER admin ENV ADMIN_PASSWORD admin # set credentials to admin/admin RUN echo 'AS_ADMIN_PASSWORD=\n\ AS_ADMIN_NEWPASSWORD='$ADMIN_PASSWORD'\n\ EOF\n'\ >> /opt/tmpfile RUN echo 'AS_ADMIN_PASSWORD='$ADMIN_PASSWORD'\n\ EOF\n'\ >> /opt/pwdfile RUN \ $PAYARA_PATH/bin/asadmin start-domain && \ $PAYARA_PATH/bin/asadmin --user $ADMIN_USER --passwordfile=/opt/tmpfile change-admin-password && \ $PAYARA_PATH/bin/asadmin --user $ADMIN_USER --passwordfile=/opt/pwdfile enable-secure-admin && \ $PAYARA_PATH/bin/asadmin restart-domain # cleanup RUN rm /opt/tmpfile