Maven 使用ansible playbook在docker容器内运行mvn clean install

Maven 使用ansible playbook在docker容器内运行mvn clean install,maven,docker,ansible,Maven,Docker,Ansible,我试图在docker容器中运行mvn clean install命令。但似乎什么也没有发生,因为我已将容器映射到卷,并且没有创建目标文件夹。这是剧本。抱歉,如果这是一个愚蠢的问题,但我已经被困在这里一段时间了 --- - name: Building project hosts: all become: true become_user: root tasks: - name: install docker mvn docker_container:

我试图在docker容器中运行mvn clean install命令。但似乎什么也没有发生,因为我已将容器映射到卷,并且没有创建目标文件夹。这是剧本。抱歉,如果这是一个愚蠢的问题,但我已经被困在这里一段时间了

---
- name: Building project
  hosts: all
  become: true
  become_user: root
  tasks:
     - name: install docker mvn
       docker_container:
          name: maven_build_direct
          image: maven
          volumes:
            - /home/user/Desktop/Training/docker/maven_task/happy/GsaJavaExample/:/proj
          command: cd /proj
          command: mvn clean install
我还尝试从docker容器模块外部运行命令,但由于容器已经停止,因此会出现错误。像这样的

     - name: copy content in container to some other folder
       command: docker exec -i maven_build_direct bash -c 'echo "Hello1"; echo "Hello2"'
上面的错误是

致命:[localhost]:失败!=>{“已更改”:true,“cmd:[“docker”,“exec”,“i”,“maven_build_direct”,“bash”,“c”,“echo\“Hello1”,“echo\“Hello2\”],“delta:“0:00:00.212534”,“end:“2018-08-26 17:07:06.995110”,“msg:“非零返回代码”,“rc:”126,“start:“2018-08-26 17:07:06.782576”,“stderr:”“stderr:”,“stderr:”,“stdout:”“OCI运行时执行失败:执行失败:无法执行已停止的容器:未知”,“标准输出行”:[“OCI运行时执行失败:执行失败:无法执行已停止的容器:未知”]}


正如评论中所指出的,第一个问题是您正在指定多个命令属性,这是行不通的。正确的方法是将workdir属性设置为:

      ...
      volumes:
        - /home/user/Desktop/Training/docker/maven_task/happy/GsaJavaExample/:/proj
      working_dir: /proj
      command: mvn clean install
      ...

@Baptistem是的…那是我从模块外运行时的情况。我尝试使用run..没有错误但没有目标createdyou不能在同一个
docker\u容器中有2个
命令
关键字
。为什么不使用
/proj/mvn clean install
?那么我如何转到pom.xml所在的目录并运行mvn install.trusted cd/pr项目和mvn清洁安装。没有更改。哦,好的later@baptistemm尝试过,但没有创建目标文件夹,也没有错误。