Dockerfile具有已配置的CMD
启动命令(无ENTRYPOINT
):
ARG wildfly_version
FROM jboss/wildfly:$wildfly_version
...
CMD ["/bin/bash", "/opt/jboss/init.sh"]
init.sh
脚本启动WildFly,检查tmp
文件夹是否存在,如果存在,则部署大量应用程序,然后删除tmp
文件夹并运行命令以使容器可运行:
/opt/jboss/wildfly/bin/standalone.sh \
-c standalone-full.xml \
-b 0.0.0.0 & sleep 30 && \
# this folder does not exist, when container is restarted
[ -d "/opt/jboss/tmp" ] && /opt/jboss/deploy.sh && \
# remove /tmp to also mark a deployment has been finished successfully
rm -rf /opt/jboss/tmp && \
# keep the container running in detached mode, run in the foreground:
tail -f /dev/null
使用tmp
文件夹的解决方法可以避免在容器重新启动后逐步部署先前部署的软件包。
第一次启动后,容器工作稳定,并显示以下MEM和CPU使用情况:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8f6269f5b650 bm_wf 9.53% 5.345GiB / 15.52GiB 34.44% 11.5MB / 6.34MB 1.11GB / 1.51GB 1249
但是,在容器重启后,我可以看到内存如何从大约100Mb增加到4-5Gb,然后消失。通过docker logs
命令,我只能看到Wildfly日志,并且每次重新启动尝试都仅显示消息,说明如何部署应用程序。每次都有不同的消息。没有系统错误,只有Wildfly的信息。在此基础上,我得出了一个结论,即问题的原因与Wilfly本身无关。
docker events
显示:
020-09-08T11:41:27.243803353+02:00 network connect 7467b7c9524a0f0abfee9d2aaddb65c39fde9faddaa205e9662d9bff533dacda (container=8f6269f5b650f3667bbacad4baaa11942e87bb97d8c85117ddefa8b0d1b1c17f, name=bridge, type=bridge)
2020-09-08T11:41:27.327371724+02:00 network connect 4484c2b8bfcc37e1a278aae3fae86a32597eb99f9ef1f29f85568ac1a3ab1df6 (container=8f6269f5b650f3667bbacad4baaa11942e87bb97d8c85117ddefa8b0d1b1c17f, name=bm_network, type=bridge)
2020-09-08T11:41:27.836003355+02:00 container start 8f6269f5b650f3667bbacad4baaa11942e87bb97d8c85117ddefa8b0d1b1c17f (image=bm_wf:10.1.0.Final, name=bm_wf, org.label-schema.build-date=20181205, org.label-schema.license=GPLv2, org.label-schema.name=CentOS Base Image, org.label-schema.schema-version=1.0, org.label-schema.vendor=CentOS)
2020-09-08T11:41:58.064390117+02:00 container die 8f6269f5b650f3667bbacad4baaa11942e87bb97d8c85117ddefa8b0d1b1c17f (exitCode=1, image=bm_wf:10.1.0.Final, name=bm_wf, org.label-schema.build-date=20181205, org.label-schema.license=GPLv2, org.label-schema.name=CentOS Base Image, org.label-schema.schema-version=1.0, org.label-schema.vendor=CentOS)
2020-09-08T11:41:58.622899034+02:00 network disconnect 7467b7c9524a0f0abfee9d2aaddb65c39fde9faddaa205e9662d9bff533dacda (container=8f6269f5b650f3667bbacad4baaa11942e87bb97d8c85117ddefa8b0d1b1c17f, name=bridge, type=bridge)
2020-09-08T11:41:58.622970586+02:00 network disconnect 4484c2b8bfcc37e1a278aae3fae86a32597eb99f9ef1f29f85568ac1a3ab1df6 (container=8f6269f5b650f3667bbacad4baaa11942e87bb97d8c85117ddefa8b0d1b1c17f, name=bm_network, type=bridge)
我还可以研究什么才能重启容器并使用它?