最简单的方法是在构建docker映像之前构建您的war,然后使用dockerfile中的copy操作符将war放到WildFly的部署文件夹中。像这样:
COPY /build/libs/foo.war /opt/jboss/wildfly/standalone/deployments/
这可能会更干净,并且可以很容易地使用CI实现。
如果您真的需要在Docker文件中执行这个操作(我认为您不需要),那么您应该在执行命令之前使用run命令,安装git和gradle,然后克隆和构建。像这样…
FROM jboss/wildfly
// RUN Install git here
// RUN Install gradle here
RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin#70365 --silent
RUN git clone https://github.com/tongueroo/demo-java
RUN cd docker-tomcat-java-example
RUN ./gradlew build
// Copy the generated war file to the deployment file of your wildfly.
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0
再说一次,这对我来说太多了,对于一个docker文件来说,这个逻辑应该被移植到连续的整合素中,但是理论上它是可能的。