java – docker jboss7 war commit.服务器启动以不可恢复的方式失败

前端之家收集整理的这篇文章主要介绍了java – docker jboss7 war commit.服务器启动以不可恢复的方式失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有没有办法将.war文件部署到在docker容器内运行的Jboss-as7中

因为我的jboss服务器在docker提交后似乎失败了.

  1. Could not rename /usr/local/share/jboss/standalone/configuration/standalone_xml_history/current to /usr/local/share/jboss/standalone/configuration/standalone_xml_history/20140107-050049692

我试过了

  1. chmod +w usr/local/share/jboss/standalone/configuration/standalone_xml_history

参考:

https://docs.jboss.org/author/display/AS7/Configuration+file+history

现在,如果我停止docker容器,我必须部署war文件,之后不要进行docker commit.

我正在使用ubuntu 12.04在vagrant上运行

我使用主管来运行ssh和jboss7.

我的主管档案:

  1. [supervisord]
  2. nodaemon=true
  3. [program:sshd]
  4. command=/usr/sbin/sshd -D
  5. stdout_logfile=/var/log/supervisor/%(program_name)s.log
  6. stderr_logfile=/var/log/supervisor/%(program_name)s.log
  7. autorestart=true
  8. [program:jboss]
  9. command=/usr/local/share/jboss/bin/./standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0
  10. stdout_logfile=/var/log/supervisor/%(program_name)s.log
  11. stderr_logfile=/var/log/supervisor/%(program_name)s.log
  12. autorestart=true

接下来我的步骤:

  1. vagrant up
  2. [default] Forwarding ports...
  3. [default] -- 10022 => 10022 (adapter 1)
  4. [default] -- 8080 => 18080 (adapter 1)

Jboss-as7日志:

  1. 05:00:49,135 INFO [org.jboss.as.remoting] (MSC service thread 1-4) JBAS017100: Listening on /0.0.0.0:4447
  2. 05:00:49,155 INFO [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on /0.0.0.0:9999
  3. 05:00:49,253 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-4) JBAS015012: Started FileSystemDeploymentService for directory /usr/local/share/jboss/standalone/deployments
  4. 05:00:49,646 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
  5. 05:00:49,695 ERROR [org.jboss.as.server] (Controller Boot Thread) JBAS015956: Caught exception during boot: java.lang.IllegalStateException: JBAS014647: Could not rename /usr/local/share/jboss/standalone/configuration/standalone_xml_history/current to /usr/local/share/jboss/standalone/configuration/standalone_xml_history/20140107-050049692
  6. at org.jboss.as.controller.persistence.ConfigurationFile.createHistoryDirectory(ConfigurationFile.java:414) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
  7. at org.jboss.as.controller.persistence.ConfigurationFile.successfulBoot(ConfigurationFile.java:273) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
  8. at org.jboss.as.controller.persistence.BackupXmlConfigurationPersister.successfulBoot(BackupXmlConfigurationPersister.java:65) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
  9. at org.jboss.as.controller.AbstractControllerService.finishBoot(AbstractControllerService.java:195) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
  10. at org.jboss.as.server.ServerService.boot(ServerService.java:268) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
  11. at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:155) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
  12. at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
  13. 05:00:49,719 FATAL [org.jboss.as.server] (Controller Boot Thread) JBAS015957: Server boot has Failed in an unrecoverable manner; exiting. See prevIoUs messages for details.
  14. 05:00:49,725 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "ROOT.war"
  15. 05:00:49,765 INFO [org.jboss.as.osgi] (MSC service thread 1-3) JBAS011942: Stopping OSGi Framework
  16. 05:00:49,777 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.unit."ROOT.war": org.jboss.msc.service.StartException in service jboss.deployment.unit."ROOT.war": Failed to start service
  17. at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc- 1.0.2.GA.jar:1.0.2.GA]
  18. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.6.0_24]
  19. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.6.0_24]
  20. at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
  21. Caused by: java.lang.IllegalStateException: Container is down
  22. at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:508) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
  23. at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:201) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
  24. at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2228) [jboss-msc- 1.0.2.GA.jar:1.0.2.GA]
  25. at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:307) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
  26. at org.jboss.as.server.deployment.AbstractDeploymentUnitService.start(AbstractDeploymentUnitService.java:77) [jboss-as- server-7.1.1.Final.jar:7.1.1.Final]
  27. at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc- 1.0.2.GA.jar:1.0.2.GA]
  28. at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc- 1.0.2.GA.jar:1.0.2.GA]

任何建议表示赞赏.谢谢

更新

我将一个Dockerfile和一个ROOT.war文件上传到github到空文件夹中

https://github.com/poseidonjm/docker-files/

Dockerfile

  1. FROM mhamel/jboss7
  2. RUN apt-get update
  3. RUN apt-get install -y supervisor openssh-server
  4. RUN mkdir -p /var/run/sshd
  5. RUN mkdir -p /var/log/supervisor
  6. ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
  7. RUN echo 'root:rhemubuntu' | chpasswd
  8. RUN sed -i 's/enable-welcome-root="true"/enable-welcome-root="false"/' /usr/local/share/jboss/standalone/configuration/standalone.xml
  9. CMD ["/usr/bin/supervisord"]

脚步:

构建docker镜像

  1. docker build -t poseidonjm/empty .

运行容器

  1. docker run -d -p 8080:8080 -p 10022:22 poseidonjm/empty

部署.war文件

  1. ifconfig
  2. scp -P 10022 ROOT.war root@172.17.42.1:/usr/local/share/jboss/standalone/deployments/ROOT.war
  3. user:root
  4. password:rhemubuntu

第一次测试

  1. http://127.0.0.1:18080/
  2. Hello empty project
  3. OK

停止容器

  1. alias dl='docker ps -l -q'
  2. docker stop `dl`

提交更改

  1. docker commit -run='{"Cmd": ["/usr/bin/supervisord"]}' `dl` poseidonjm/empty

再次运行

  1. docker run -d -p 8080:8080 -p 10022:22 poseidonjm/empty

第二次测试

  1. http://127.0.0.1:18080/
  2. Fail

检查jboss日志

  1. ssh root@172.17.42.1 -p 10022
  2. vim /usr/local/share/jboss/standalone/log/server.log
最佳答案
不是真正的解决方案,而是一种解决方法

> ssh in
> supervisorctl停止jboss
> mv /usr/local / share / jboss / standalone / configuration / standalone_xml_history / current /usr/local / share / jboss / standalone / configuration / standalone_xml_history / 20140116-034913551(或其他一些时间戳)
>退出ssh
> docker commit -run ='{“Cmd”:[“/usr/bin/supervisord”]}’`dl` secondversion

如果你启动它,那个图像(secondversion)就可以运行了.

猜你在找的Docker相关文章