必须启用Secure Admin才能远程访问DAS - 使用Docker访问Glassfish管理控制台

Ben*_*rme 5 glassfish docker dockerfile

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

必须启用Secure Admin才能远程访问DAS.

所以我在其他帖子上发现我需要在bin文件夹中添加这些行:

./asadmin start-domain
./asadmin change-admin-password
./asadmin enable-secure-admin
./asadmin stop-domain
./asadmin start-domain
Run Code Online (Sandbox Code Playgroud)

但我不能这样做,因为我的glassfish实例是在容器上.

有关信息,我运行glassfish:

sudo docker run -p 4848:4848 -p 8080:8080 -e GLASSFISH_PASS="password" -d glassfish
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 5

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

总而言之,此方法创建 2 个文件:一个tmpfile包含默认(空)密码和所需的新密码,一个pwdfile仅包含新更改的文件。

如果内容tmpfile是:

AS_ADMIN_PASSWORD=
AS_ADMIN_NEWPASSWORD=MyNewPassword
Run Code Online (Sandbox Code Playgroud)

那么内容pwdfile应该是:

AS_ADMIN_PASSWORD=MyNewPassword
Run Code Online (Sandbox Code Playgroud)

要使用 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
Run Code Online (Sandbox Code Playgroud)

  • 这个特定的 dockerfile 也可以在 Docker 集线器上使用和维护,所以你可以拉取“payara/server-full”,你会得到最新的镜像。很高兴它有所帮助。 (2认同)