簡體   English   中英

代碼在 Dockerfile 中有效,但在 docker-compose.yml 中無效

[英]Code works in Dockerfile but not in docker-compose.yml

我必須 docker 程序:1)第一個使用 Dockerfile 並執行docker build -t d1. 然后docker run -p 4022:22 d1 2) 第二個使用 docker-compose.yml 文件,由命令docker-compose up

第一個有效,沒有錯誤,第二個失敗,命令 ansible-galaxy 執行 https git 操作從未發生,但沒有顯示錯誤。 任何想法?

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 撰寫文件版本 3 參考: https://docs.docker.com/compose/compose-file/

command:屬性在運行時覆蓋在指定入口點內運行的默認可執行文件。

只能有一個command ,並且您指定的第一個command表面上會導致其他command條目被忽略。

刪除command: ''行,您的 Ansible 命令應該運行。 但是,它將是唯一運行的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM