必须启用安全管理才能远程访问 DAS - 使用 Docker 访问 Glassfish 管理控制台
Secure Admin must be enabled to access the DAS remotely - Acess Glassfish Admin Console with Docker
我尝试在 docker 容器上的 glassfish 上部署我的网络应用程序。
当我访问管理控制台 ( [IP]:4848 ) 时,我可以访问登录页面,但出现此错误消息,我无法登录:
Secure Admin must be enabled to access the DAS remotely.
所以我在其他 post 上发现我需要在 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
有几种方法可以做到这一点,但最好的方法可能是复制 the method used in the Payara Server dockerfile。 (Payara Server 派生自 GlassFish,因此 docker 文件也与 GlassFish 兼容)
总而言之,此方法创建了 2 个文件:一个包含默认(空)密码和所需新密码的 tmpfile
,以及一个仅包含新更改的文件的 pwdfile
。
如果tmpfile
的内容是:
AS_ADMIN_PASSWORD=
AS_ADMIN_NEWPASSWORD=MyNewPassword
那么pwdfile
的内容应该是:
AS_ADMIN_PASSWORD=MyNewPassword
要使用 asadmin 更改密码,第一个文件必须与 change-admin-password
命令一起使用,第二个文件必须与以后的所有命令一起使用。
在 docker 术语中,它看起来像这样(直接取自上面链接的 docker 文件):
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
[~]# asadmin --port #your-admin-port# enable-secure-admin
我尝试在 docker 容器上的 glassfish 上部署我的网络应用程序。 当我访问管理控制台 ( [IP]:4848 ) 时,我可以访问登录页面,但出现此错误消息,我无法登录:
Secure Admin must be enabled to access the DAS remotely.
所以我在其他 post 上发现我需要在 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
有几种方法可以做到这一点,但最好的方法可能是复制 the method used in the Payara Server dockerfile。 (Payara Server 派生自 GlassFish,因此 docker 文件也与 GlassFish 兼容)
总而言之,此方法创建了 2 个文件:一个包含默认(空)密码和所需新密码的 tmpfile
,以及一个仅包含新更改的文件的 pwdfile
。
如果tmpfile
的内容是:
AS_ADMIN_PASSWORD=
AS_ADMIN_NEWPASSWORD=MyNewPassword
那么pwdfile
的内容应该是:
AS_ADMIN_PASSWORD=MyNewPassword
要使用 asadmin 更改密码,第一个文件必须与 change-admin-password
命令一起使用,第二个文件必须与以后的所有命令一起使用。
在 docker 术语中,它看起来像这样(直接取自上面链接的 docker 文件):
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
[~]# asadmin --port #your-admin-port# enable-secure-admin