osixia / docker-phpLDAPadmin

phpLDAPadmin container image 🐳🌴
MIT License
844 stars 197 forks source link

copy-service not working as expected #47

Open isuftin opened 5 years ago

isuftin commented 5 years ago

I am running this container in a Docker swarm setting.

The following is my compose config

---
version: '3.5'

networks:
  management_enterprise_overlay:
    external: true

configs:
  ssl.crt:
    file: ./ssl_certs/my-cert.cer
  ssl.csr:
    file: ./ssl_certs/my-cert.csr

secrets:
  ssl.key:
    file: ./ssl_certs/my-cert.key
  phpadminldapconfig:
    file: ./config/phpadminldapconfig.env

services:
  phpldapadmin_server:
    image: osixia/phpldapadmin
    networks:
      management_enterprise_overlay:
        aliases:
          - phpldapadmin
    ports:
      - "9001:443"
    command: "--copy-service --loglevel debug"
    configs:
      - source: ssl.crt
        target: /ssl.crt
      - source: ssl.csr
        target: /ssl.csr
    secrets:
      - source: ssl.key
        target: /ssl.key
      - source: phpadminldapconfig
        target: /container/environment/01-custom/env.yaml
        mode: 0664

My env file:

PHPLDAPADMIN_LDAP_HOSTS:
  - mgmtldap.some.internal.domain:
    - server:
      - tls: true
      - port: 636
      - force_may: array('uidNumber','gidNumber','sambaSID')
    - login:
      - bind_id: cn=readonly,dc=some,dc=internal,dc=domain
      - bind_pass: pass_here

PHPLDAPADMIN_HTTPS: true
PHPLDAPADMIN_LDAP_CLIENT_TLS_REQCERT: demand
PHPLDAPADMIN_HTTPS_CRT_FILENAME: ssl.crt
PHPLDAPADMIN_HTTPS_KEY_FILENAME: ssl.key
PHPLDAPADMIN_HTTPS_CA_CRT_FILENAME: ssl.csr
PHPLDAPADMIN_TRUST_PROXY_SSL: true

When launched, I am seeing:

phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    | *** CONTAINER_LOG_LEVEL = 4 (debug)
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    | *** Copy /container/service to /container/run/service
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    | *** CONTAINER_LOG_LEVEL = 4 (debug)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    | *** CONTAINER_LOG_LEVEL = 4 (debug)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    | *** Copy /container/service to /container/run/service
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    | *** Run commands before finish...
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    | *** Copy /container/service to /container/run/service
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    | *** Run commands before finish...
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    | *** Run commands before finish...
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    | *** Killing all processes...
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    | *** Killing all processes...
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    | *** Killing all processes...
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    | Traceback (most recent call last):
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |   File "/container/tool/run", line 890, in <module>
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |     main(args)
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |   File "/container/tool/run", line 775, in main
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |     setup_run_directories(args)
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |   File "/container/tool/run", line 376, in setup_run_directories
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |     copy_service_to_run_dir()
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    | Traceback (most recent call last):
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    | Traceback (most recent call last):
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |   File "/container/tool/run", line 890, in <module>
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |   File "/container/tool/run", line 890, in <module>
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |     main(args)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |     main(args)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |   File "/container/tool/run", line 775, in main
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |   File "/container/tool/run", line 775, in main
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |     setup_run_directories(args)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |     setup_run_directories(args)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |   File "/container/tool/run", line 376, in setup_run_directories
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |   File "/container/tool/run", line 376, in setup_run_directories
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |     copy_service_to_run_dir()
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |     copy_service_to_run_dir()
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |   File "/container/tool/run", line 442, in copy_service_to_run_dir
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |   File "/container/tool/run", line 442, in copy_service_to_run_dir
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |     shutil.copytree(IMPORT_SERVICE_DIR, RUN_SERVICE_DIR)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |     shutil.copytree(IMPORT_SERVICE_DIR, RUN_SERVICE_DIR)
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |   File "/usr/lib/python2.7/shutil.py", line 208, in copytree
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |   File "/usr/lib/python2.7/shutil.py", line 208, in copytree
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    |     raise Error, errors
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    |     raise Error, errors
phpldapadmin_phpldapadmin_server.1.x0rpjdicalmc@ec2-instance-2    | shutil.Error: [('/container/service/:runit/download.sh', '/container/run/service/:runit/download.sh', "[Errno 2] No such file or directory: '/container/service/:runit/download.sh'")]
phpldapadmin_phpldapadmin_server.1.ly2mz1qve3da@ec2-instance-2    | shutil.Error: [('/container/service/:runit/download.sh', '/container/run/service/:runit/download.sh', "[Errno 2] No such file or directory: '/container/service/:runit/download.sh'")]
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |   File "/container/tool/run", line 442, in copy_service_to_run_dir
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |     shutil.copytree(IMPORT_SERVICE_DIR, RUN_SERVICE_DIR)
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |   File "/usr/lib/python2.7/shutil.py", line 208, in copytree
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    |     raise Error, errors
phpldapadmin_phpldapadmin_server.1.j83jga452wvg@ec2-instance-1    | shutil.Error: [('/container/service/:runit/download.sh', '/container/run/service/:runit/download.sh', "[Errno 2] No such file or directory: '/container/service/:runit/download.sh'")]

(note that the service was attempted to be started multiple times

isuftin commented 5 years ago

This is possibly related to https://github.com/osixia/docker-phpLDAPadmin/issues/45

isuftin commented 5 years ago

Like https://github.com/osixia/docker-phpLDAPadmin/issues/45 if I remove the --copy-serviceflag, I get past this issue

bascouba commented 5 years ago

Hello, I have the same issue but if I remove the --copy-service I have the same issue as #15 I'm a bit stuck here and don't know what to do.

isuftin commented 5 years ago

Here's what I've found works for me:

compose config...

---
version: '3.5'

networks:
  management_enterprise_overlay:
    external: true

configs:
  ssl.crt:
    file: ./ssl_certs/management-enterprise-services.internal.domain.cer
  ssl.csr:
    file: ./ssl_certs/ldap-ca.crt
  ldap.crt:
    file: ./ssl_certs/ldap.crt
  ldap.csr:
    file: ./ssl_certs/ldap.csr

secrets:
  ssl.key:
    file: ./ssl_certs/management-enterprise-services.internal.domain.key
  ldap-ca.crt:
    file: ./ssl_certs/ldap-ca.crt
  ldap.key:
    file: ./ssl_certs/ldap.key
  phpadminldapconfig:
    file: ./config/phpadminldapconfig.env

services:
  phpldapadmin_server:
    image: osixia/phpldapadmin
    networks:
      management_enterprise_overlay:
        aliases:
          - phpldapadmin
    ports:
      - "9001:443"
    configs:
      - source: ssl.crt
        target: /container/service/phpldapadmin/assets/apache2/certs/ssl.crt
      - source: ldap.crt
        target: /ldap.crt
      - source: ssl.csr
        target: /container/service/phpldapadmin/assets/apache2/certs/ssl.csr
      - source: ldap.csr
        target: /ldap.csr
    secrets:
      - source: ssl.key
        target: /container/service/phpldapadmin/assets/apache2/certs/ssl.key
      - source: ldap.key
        target: /ldap.key
      - source: ldap-ca.crt
        target: /ldap-ca.crt
      - source: phpadminldapconfig
        target: /container/environment/01-custom/env.yaml
        mode: 0664

compose env file:

PHPLDAPADMIN_LDAP_HOSTS:
  - mgmtldap.some.internal.domain:
    - server:
      - tls: true
    - login:
      - bind_id: cn=admin,dc=some,dc=internal,dc=domain

PHPLDAPADMIN_HTTPS: true
PHPLDAPADMIN_LDAP_CLIENT_TLS_REQCERT: allow
PHPLDAPADMIN_HTTPS_CRT_FILENAME: ssl.crt
PHPLDAPADMIN_HTTPS_KEY_FILENAME: ssl.key
PHPLDAPADMIN_HTTPS_CA_CRT_FILENAME: ssl.csr
PHPLDAPADMIN_TRUST_PROXY_SSL: true
PHPLDAPADMIN_LDAP_CLIENT_TLS_CA_CRT_FILENAME: ldap-ca.crt
PHPLDAPADMIN_LDAP_CLIENT_TLS_CRT_FILENAME: ldap.crt
PHPLDAPADMIN_LDAP_CLIENT_TLS_KEY_FILENAME: ldap.key