在Jboss wildfly和docker中使用cli时,权限错误

我已经扩展了docker镜像,在构builddockerfile时,我调用Wildfly CLI来添加一个数据源。

然后,当我尝试运行dockerfile时,出现以下错误:

========================================================================= appui-dev-local | appui-dev-local | JBoss Bootstrap Environment appui-dev-local | appui-dev-local | JBOSS_HOME: /opt/jboss/wildfly appui-dev-local | appui-dev-local | JAVA: /usr/lib/jvm/java/bin/java appui-dev-local | appui-dev-local | JAVA_OPTS: -server -XX:+UseCompressedOops -server -XX:+UseCompressedOops -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true appui-dev-local | appui-dev-local | ========================================================================= appui-dev-local | appui-dev-local | OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 appui-dev-local | 12:48:06,067 INFO [org.jboss.modules] (main) JBoss Modules version 1.4.3.Final psql-dev-local | /usr/lib/python2.6/site-packages/supervisor-3.1.3-py2.6.egg/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security. psql-dev-local | 'Supervisord is running as root and it is searching ' appui-dev-local | 12:48:06,637 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final psql-dev-local | 2015-12-28 12:48:06,709 CRIT Supervisor running as root (no user in config file) psql-dev-local | 2015-12-28 12:48:06,720 INFO supervisord started with pid 1 appui-dev-local | 12:48:06,822 INFO [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Full 9.0.1.Final (WildFly Core 1.0.1.Final) starting ... ... appui-dev-local | 12:48:17,334 ERROR [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0055: Caught exception during boot: java.lang.IllegalStateException: WFLYCTL0056: Could not rename /opt/jboss/wildfly/standalone/configuration/standalone_xml_history/current to /opt/jboss/wildfly/standalone/configuration/standalone_xml_history/20151228-124817332 appui-dev-local | at org.jboss.as.controller.persistence.ConfigurationFile.createHistoryDirectory(ConfigurationFile.java:641) appui-dev-local | at org.jboss.as.controller.persistence.ConfigurationFile.successfulBoot(ConfigurationFile.java:468) appui-dev-local | at org.jboss.as.controller.persistence.BackupXmlConfigurationPersister.successfulBoot(BackupXmlConfigurationPersister.java:94) appui-dev-local | at org.jboss.as.controller.AbstractControllerService.finishBoot(AbstractControllerService.java:374) appui-dev-local | at org.jboss.as.server.ServerService.boot(ServerService.java:361) appui-dev-local | at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:271) appui-dev-local | at java.lang.Thread.run(Thread.java:745) appui-dev-local | appui-dev-local | 12:48:17,336 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details. appui-dev-local | 12:48:17,338 INFO [org.jboss.as.server] (Thread-2) WFLYSRV0220: Server shutdown has been requested. appui-dev-local | 12:48:17,366 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) WFLYJCA0010: Unbound data source [java:/jdbc/ISDS] appui-dev-local | 12:48:17,394 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0010: Unbound data source [java:jboss/datasources/magick] appui-dev-local | 12:48:17,397 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 10) WFLYUT0022: Unregistered web context: /hawtio appui-dev-local | 12:48:17,414 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0019: Stopped Driver service with driver-name = postgresql appui-dev-local | 12:48:17,443 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0019: Host default-host stopping appui-dev-local | 12:48:17,448 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-6) WFLYJCA0010: Unbound data source [java:jboss/datasources/ExampleDS] appui-dev-local | 12:48:17,455 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) WFLYJCA0019: Stopped Driver service with driver-name = h2 appui-dev-local | 12:48:17,489 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-5) HV000001: Hibernate Validator 5.1.3.Final appui-dev-local | 12:48:17,570 INFO [org.jboss.gravia.runtime] (MSC service thread 1-3) Runtime released: org.wildfly.extension.gravia.service.WildFlyRuntime@31a59c9c appui-dev-local | 12:48:17,580 INFO [org.wildfly.extension.undertow] (MSC service thread 1-8) WFLYUT0008: Undertow HTTP listener default suspending appui-dev-local | 12:48:17,604 INFO [org.wildfly.extension.undertow] (MSC service thread 1-8) WFLYUT0007: Undertow HTTP listener default stopped, was bound to /0.0.0.0:8080 appui-dev-local | 12:48:17,608 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) WFLYUT0004: Undertow 1.2.9.Final stopping appui-dev-local | 12:48:18,094 INFO [org.jboss.as.server.deployment] (MSC service thread 1-8) WFLYSRV0028: Stopped deployment hawtio-wildfly-1.4.50.war (runtime-name: hawtio-wildfly-1.4.50.war) in 737ms appui-dev-local | 12:48:18,105 INFO [org.jboss.as] (MSC service thread 1-3) WFLYSRV0050: WildFly Full 9.0.1.Final (WildFly Core 1.0.1.Final) stopped in 748ms appui-dev-local | appui-dev-local exited with code 1 

我已经尝试了docker jboss7 war commit的build议。 服务器启动以不可恢复的方式失败,但是:我无法对具有时间戳的文件设置权限,因为我不知道文件名应该是什么。

Dockerfile

 FROM wildflyext/wildfly-camel ENV TMPDIR /tmp/ ENV WFDIR /opt/jboss/wildfly/ RUN /opt/jboss/wildfly/bin/add-user.sh admin admin --silent USER root ## COPY PG MODULE TO SERVER #ADD module.xml $WFDIR/modules/org/postgresql/main/ modules system layers base #ADD standalone.xml $WFDIR/standalone/configuration/ #ADD system /opt/jboss/wildfly/modules/ ## COPY PG DRIVER TO SERVER ADD postgresql-9.3-1101.jdbc41.jar /opt/jboss/wildfly/ ## COPY STANDALONE TO SERVER ADD standalone-camel.xml /opt/jboss/wildfly/standalone/configuration/ ADD config.sh $TMPDIR ADD batch.cli $TMPDIR ## Attempt fix permissions error ## # Attepmt to fix for Error: Could not rename /opt/jboss/wildfly/standalone/configuration/standalone_xml_history/current # See https://stackoverflow.com/questions/20965737/docker-jboss7-war-commit-server-boot-failed-in-an-unrecoverable-manner RUN rm -rf /opt/jboss/wildfly/standalone/configuration/standalone_xml_history/current RUN chmod -R 777 /opt/jboss/wildfly/standalone/configuration/ RUN chown -R jboss:jboss /opt/jboss/wildfly/ RUN $TMPDIR/config.sh 

我相信这个错误是由最后一个改变文件夹权限的命令造成的。

请向下移动:

 RUN rm -rf /opt/jboss/wildfly/standalone/configuration/standalone_xml_history/current 

 RUN $TMPDIR/config.sh RUN rm -rf /opt/jboss/wildfly/standalone/configuration/standalone_xml_history/current/* RUN chown -R jboss:jboss /opt/jboss/wildfly/ 

谢谢你,安德烈