我正在关注lynda Docker教程,并执行与docker compose文件相关的工作。
这是我的docker-compose.yml
文件。
more docker-compose.yml
version: '3'
services:
web:
image: jboss/wildfly
volumes:
- ~/deployments:/opt/jboss/wildfly/standalone/deployments
ports:
- 8080:8080
根据作者的说法,我正在尝试将webapp.war
文件复制到deployments/
文件夹中,但出现错误。 似乎docker文件的卷映射不起作用。
cp /home/user/Demos/docker-for-java/chapter2/webapp.war部署/ cp:无法创建常规文件“ deployments /”:不是目录
docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
helloweb_web_1 /opt/jboss/wildfly/bin/sta ... Up 0.0.0.0:8080->8080/tcp
答案 0 :(得分:1)
我想你可能会曲解教程。我还没有看过教程本身,但是在检查WildFly Docker映像here的文档时,提到需要扩展基本映像并在其中添加war
文件:
为此,您只需要通过创建一个新的jboss / wildfly图像来对其进行扩展。使用ADD命令将您的应用程序放置在Deployments /目录中(但请确保在部署文件夹路径中包含斜杠,以获取更多信息)。您还可以作为其他步骤(RUN命令)对配置(如果有)进行更改。
这意味着您需要创建一个包含以下内容的Dockerfile
(将your-awesome-app.war
文件的路径更改为war
)
FROM jboss/wildfly
ADD your-awesome-app.war /opt/jboss/wildfly/standalone/deployments/
此后,您需要将docker-compose.yml
更改为从Dockerfile
构建,而不是使用jboss/wildfly
(请注意,使用build: .
而不是image: jboss/wildfly
) :
version: '3'
services:
web:
build: .
ports:
- 8080:8080
尝试是和评论,如果你遇到任何问题。