Докер Apache HTTPD с Certbot - PullRequest
       3

Докер Apache HTTPD с Certbot

0 голосов
/ 25 апреля 2019

Я пытаюсь запустить Wordpress на Docker вместе с MySQL.Вот содержимое файла docker-compose.yaml

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - blog-vol:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: secretpass
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wpuser
       MYSQL_PASSWORD: pass
     ports:
       - "3306:3306"
   wordpress:
     depends_on:
       - db
     image: blog:v1
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wpuser
       WORDPRESS_DB_PASSWORD: pass
       WORDPRESS_DB_NAME: wordpress
     build:
       context: .
       dockerfile: Dockerfile.blog
volumes:
    blog-vol: {}

blog: v1 (изображение построено отдельно)

FROM wordpress:latest

RUN echo 'deb http://deb.debian.org/debian stretch-backports main' >> /etc/apt/sources.list 
RUN apt-get update -y
RUN apt-get install -y python-certbot-apache  -t stretch-backports

Dockerfile.blog

FROM blog:v1
RUN certbot certonly -a standalone  --agree-tos  --non-interactive --dry-run --email email@gmail.com --domains "abc.net" 

Когда я запускаю

docker-compose up

, я вижу, что Apache и MySQL подходят, и я могу получить доступ к WordPress.Но я не вижу, чтобы Dockerfile.blog выполнялся.

Я могу подключиться к контейнеру по SSH и запустить команду, но, конечно, для этого потребуется перезапуск Apache, который уничтожит контейнер.

Я попытался запустить команды напрямую.

Вот docker-compose.yml

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - blog-vol:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: secretpass
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wpuser
       MYSQL_PASSWORD: pass
     ports:
       - "3306:3306"
   wordpress:
     depends_on:
       - db
     image: blog:v1
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wpuser
       WORDPRESS_DB_PASSWORD: pass
       WORDPRESS_DB_NAME: wordpress
     build: .
     command:
       - /bin/bash
       - -c
       - |
         certbot certonly -a standalone  --agree-tos  --non-interactive --dry-run --email uhsarp@gmail.com --domains "batchu.net"
volumes:
    blog-vol: {}

Вот журналы

...
db_1         | 2019-04-25T01:34:14.591824Z 0 [Note] mysqld: ready for connections.
db_1         | Version: '5.7.25'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
wordpress_1  | Saving debug log to /var/log/letsencrypt/letsencrypt.log
wordpress_1  | Plugins selected: Authenticator standalone, Installer None
wordpress_1  | Obtaining a new certificate
wordpress_1  | Performing the following challenges:
wordpress_1  | http-01 challenge for abc.com
wordpress_1  | Waiting for verification...
wordpress_1  | Cleaning up challenges
wordpress_1  | IMPORTANT NOTES:
wordpress_1  |  - The dry run was successful.
wordpress_1  |  - Your account credentials have been saved in your Certbot
wordpress_1  |    configuration directory at /etc/letsencrypt. You should make a
wordpress_1  |    secure backup of this folder now. This configuration directory will
wordpress_1  |    also contain certificates and private keys obtained by Certbot so
wordpress_1  |    making regular backups of this folder is ideal.
wordpress_1  | Saving debug log to /var/log/letsencrypt/letsencrypt.log
wordpress_1  | Plugins selected: Authenticator standalone, Installer None
wordpress_1  | Obtaining a new certificate
wordpress_1  | Performing the following challenges:
wordpress_1  | http-01 challenge for abc.com
wordpress_1  | Waiting for verification...
wordpress_1  | Cleaning up challenges
wordpress_1  | IMPORTANT NOTES:
wordpress_1  |  - The dry run was successful.
blog_wordpress_1 exited with code 0
wordpress_1  | Saving debug log to /var/log/letsencrypt/letsencrypt.log
wordpress_1  | Plugins selected: Authenticator standalone, Installer None
wordpress_1  | Obtaining a new certificate
wordpress_1  | Performing the following challenges:
wordpress_1  | http-01 challenge for abc.com
wordpress_1  | Waiting for verification...
Gracefully stopping... (press Ctrl+C again to force)
Stopping blog_wordpress_1   ... done
Stopping blog_db_1          ... done

Итак, команда certbot выполняется в цикле.Докер считает, что казнь не удалась.Также Certbot говорит, что папка certs должна быть заархивирована.Я предполагаю, что это должно быть сохранено (смонтировано как том докера).Есть идеи по уборке?

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