如何从docker-compose.yml文件执行多个命令

时间:2019-12-18 15:16:02

标签: docker-compose

我正在使用如下所述的YAML文件配置,无法创建文件夹和更改dir的访问权限。 它能够创建目录,但无法完成此命令chmod 777 /opt/ldap

ldap:
image: osixia/openldap:1.3.0
env_file:
  - env/ldap.env
networks:
  appworks_net:
    aliases:
      - docker_container.local
restart: "no"
command: bash -c "mkdir -p /opt/ldap && chmod 777 /opt/ldap"  - **creates only folder**
command: ["/bin/bash", "-c", "mkdir -p /opt/ldap && chmod 777 /opt/ldap"] -- fails start container
command: ["-c", "chmod 777 /opt/ldap"] -- does not work
command: chmod 777 /opt/ldap -- does not work
command: ["-c", "mkdir -p /opt/appworks/ldap", "chmod 777 /opt/appworks/ldap"] -- only creates folder
command:
  - -c
  - |
    mkdir -p /opt/ldap
    chmod 777 /opt/ldap  -- **creates only folder**
healthcheck:
  test: ["CMD-SHELL", '/usr/bin/ldapsearch -h ldaps://$$HOSTNAME -p $$PORT -w $$LDAP_ADMIN_PASSWORD -D "cn=admin,dc=trialorg,dc=local" -b "dc=trialorg,dc=local" | grep "dn:"']
  interval: 5s
  timeout: 5s
  retries: 10

如果有任何可行的想法,请在这里帮助我。 我不想使用docker / entrypoint创建新图像。我只是启动了两个运行后容器的命令。

1 个答案:

答案 0 :(得分:0)

command:
  - -c
  - |
    mkdir -p /opt/ldap;
    chmod 777 /opt/ldap;

command:
  - -c
  - |
    mkdir -p /opt/ldap && chmod 777 /opt/ldap;

您还确定文件中包含UNIX行尾吗?

另一种可能的解决方案Using Docker-Compose, how to execute multiple commands