我必须执行 docker 程序:1) 第一个使用 Dockerfile 并执行docker build -t d1 .
,然后docker run -p 4022:22 d1
2) 第二个使用 docker-compose.yml 文件,由命令启动docker-compose up
第一个有效,没有错误,第二个失败,执行 https git 操作的 ansible-galaxy 命令永远不会发生,但没有显示任何错误。任何的想法?
Dockerfile 内容
FROM myregistry.org/ansible-rhel:admin
COPY . /home/ansible/playbook-ldap-myapp
WORKDIR /home/ansible/playbook-ldap-myapp
USER ansible
RUN ansible-galaxy install -fr requirements.yml --roles-path roles/
docker-compose.yml 内容
version: '3'
networks:
public: {}
volumes:
playbook:
driver: local
driver_opts:
type: none
o: bind
device: $PWD
services:
ansible-admin:
image: myregistry.org/ansible-rhel:admin
ports:
- '4022:22'
networks:
- public
volumes:
- playbook:/home/ansible/playbook-ldap-myapp
working_dir: /home/ansible/playbook-ldap-myapp
user: ansible
command: ''
command: 'ansible-galaxy install -fr requirements.yml --roles-path roles/'
在您的 docker-compose.yml 中,您有两个command:
条目:
command: ''
command: 'ansible-galaxy install -fr requirements.yml --roles-path roles/'
根据 Docker Compose 文件版本 3 参考:https : //docs.docker.com/compose/compose-file/
该command:
属性会在运行时覆盖在指定入口点内运行的默认可执行文件。
只能有一个command
,而command
您指定的第一个表面上会导致其他command
条目被忽略。
删除该command: ''
行,您的 Ansible 命令应该会运行。然而,它将是唯一运行的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句