我正在尝试在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-container模块外部运行命令,但是由于容器已经停止,因此会出现错误。像这样
- name: copy content in container to some other folder
command: docker exec -i maven_build_direct bash -c 'echo "Hello1"; echo "Hello2"'
以上错误是
致命:[localhost]:失败! => {“ changed”: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,”开始“:” 2018-08-26 17:07:06.782576“,” stderr“:”“,” stderr_lines“:[],” stdout“:” OCI运行时exec失败:exec失败:无法执行已停止的容器:未知”,“ stdout_lines”:[“ OCI运行时exec失败:exec失败:无法执行已停止的容器:未知”]}
答案 0 :(得分:1)
正如注释中指出的那样,第一个问题是您要指定多个命令属性,这将不起作用。正确的方法是这样设置workdir属性:
...
volumes:
- /home/user/Desktop/Training/docker/maven_task/happy/GsaJavaExample/:/proj
working_dir: /proj
command: mvn clean install
...