docker-letsencrypt-nginx-proxy-companion stat: невозможно stat "..." Нет такого файла или каталога - PullRequest
0 голосов
/ 09 октября 2018

Я новый пользователь Docker и, возможно, я что-то запутал.

Я упаковываю приложение CodeIgniter для того, что я использовал phpdocker.io .Сгенерированный docker-compose - это тот, который я использую.

План такой контейнеризации заключается в том, что когда другой разработчик касается кода, он ничего не может сделать, кроме простого docker-compose up и испачкать рукис кодом.В проектах используются некоторые API-интерфейсы Google Maps, и для этого требуется, чтобы мы установили SSL на локальные машины (в данном случае на контейнеры).

Я использую nginx-proxy для сопоставления локального виртуального хоста с контейнерами ион отлично работает, проблема возникает, когда я пытаюсь установить сертификаты SSL.

Вот мой полный docker-compose.yml

version: "3.1"
services:
  ###nginx-proxy###
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ssl-data:/etc/nginx/certs:ro
      - ssl-data:/etc/nginx/vhost.d
      - ssl-data:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    labels:
      - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
  ###letsencrypt###
  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - ssl-data:/etc/nginx/certs:rw
      - ssl-data:/etc/nginx/vhost.d
      - ssl-data:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
    depends_on:
      - nginx-proxy
  ######mysql######
  mysql:
    image: mysql:5.7.21
    container_name: rocatienda-mysql
    working_dir: /application
    volumes:
      - ./app:/application
      - ./mysql_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=roca-tienda
      - MYSQL_PASSWORD=123456
    ports:
      - "3306:3306"
    depends_on:
      - letsencrypt
  whoami:
    image: jwilder/whoami
    environment:
      - VIRTUAL_HOST=whoami.local
    depends_on:
      - letsencrypt
  ####webserver####
  webserver:
    image: nginx:alpine
    container_name: rocatienda-webserver
    working_dir: /application
    volumes:
      - ./app:/application
      - ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    environment:
      - VIRTUAL_HOST=rocatienda.local
      - LETSENCRYPT_HOST=rocatienda.local
      - LETSENCRYPT_EMAIL=some@example.com # this is just for this issue. I have a real email here.
    depends_on:
      - letsencrypt
  #####php-fpm#####
  php-fpm:
    build: phpdocker/php-fpm
    container_name: rocatienda-php-fpm
    working_dir: /application
    volumes:
      - ./app:/application
      - ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php5/fpm/conf.d/99-overrides.ini
    depends_on:
      - letsencrypt

volumes:
  ssl-data:

Это структура папок моего проекта:

/roca
|-- /app
|-- /mysql_data
|-- /phpdocker
|   |-- /nginx
|   |  `-- nginx.conf
|   `-- /php-fpm
|      |-- Dockerfile
|      `-- php-ini-overrides.ini
`-- docker-compose.yml

Это журналы для контейнера docker-letsencrypt-nginx-proxy-companion:

Generating a 4096 bit RSA private key
...............................................................................................................................................................++
.............................................................................++
writing new private key to '/etc/nginx/certs/default.key.new'
-----
Info: a default key and certificate have been created at /etc/nginx/certs/default.key and /etc/nginx/certs/default.crt.
Info: Creating Diffie-Hellman group in the background.
A pre-generated Diffie-Hellman group will be used for now while the new one
is being created.
Generating DH parameters, 2048 bit long safe prime, generator 2
Reloading nginx proxy (ee253de258e33e38026a4e872a0863faf4b03a27f81e8b312941dc9a905fafd4)...
2018/10/09 18:15:57 Generated '/etc/nginx/conf.d/default.conf' from 6 containers
2018/10/09 18:15:57 [notice] 84#84: signal process started
2018/10/09 18:15:57 Generated '/app/letsencrypt_service_data' from 6 containers
2018/10/09 18:15:57 Running '/app/signal_le_service'
2018/10/09 18:15:57 Watching docker events
2018/10/09 18:15:57 Contents of /app/letsencrypt_service_data did not change. Skipping notification '/app/signal_le_service'
/etc/nginx/certs/rocatienda.local /app
Reloading nginx proxy (ee253de258e33e38026a4e872a0863faf4b03a27f81e8b312941dc9a905fafd4)...
2018/10/09 18:15:58 Generated '/etc/nginx/conf.d/default.conf' from 6 containers
Creating/renewal rocatienda.local certificates... (rocatienda.local)
2018-10-09 18:15:58,957:INFO:simp_le:1382: Generating new account key
2018-10-09 18:16:01,125:INFO:simp_le:1407: By using simp_le, you implicitly agree to the CA's terms of service: https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf
ACME server returned an error: urn:acme:error:malformed :: The request message was malformed :: Error creating new authz :: Name does not end in a public suffix


Debugging tips: -v improves output verbosity. Help is available under --help.
/app
stat: can't stat '/etc/nginx/certs/accounts/acme-v01.api.letsencrypt.org/directory/default.json': No such file or directory
chown: /etc/nginx/certs/accounts/acme-v01.api.letsencrypt.org/directory/default.json: No such file or directory
stat: can't stat '/etc/nginx/certs/accounts/acme-v01.api.letsencrypt.org/directory': No such file or directory
chown: /etc/nginx/certs/accounts/acme-v01.api.letsencrypt.org/directory: No such file or directory
stat: can't stat '/etc/nginx/certs/accounts/acme-v01.api.letsencrypt.org': No such file or directory
chown: /etc/nginx/certs/accounts/acme-v01.api.letsencrypt.org: No such file or directory
stat: can't stat '/etc/nginx/certs/accounts': No such file or directory
chown: /etc/nginx/certs/accounts: No such file or directory
Sleep for 3600s
This is going to take a long time
Info: Diffie-Hellman group creation complete, reloading nginx.
Reloading nginx proxy (ee253de258e33e38026a4e872a0863faf4b03a27f81e8b312941dc9a905fafd4)...
2018/10/09 18:16:55 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification ''

Внизу журналов вы можете увидеть ошибку.У меня есть несколько вопросов:

  • Как я могу это исправить?
  • Где я все испортил?
  • Есть ли другой лучший способ достичь того, чего я хочу?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...