Docker Volumne不适用于部署

时间:2019-02-02 18:27:28

标签: docker docker-compose

我正在关注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

1 个答案:

答案 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

尝试是和评论,如果你遇到任何问题。