質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1946閲覧

docker-compose上でのLet's Encrypt更新

退会済みユーザー

退会済みユーザー

総合スコア0

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/04/13 02:50

前提・実現したいこと

  • Docker-Composeを利用してDjangoを起動しています。
  • 証明書としてLet's Encryptを使用しています。

期限が切れそうなので、更新手続きを行いたいです。

  • Docker使用以前は、下記のように処理していました。
# Nginx停止 sudo systemctl stop nginx # Let's Encrypt更新 ~/certbot-auto renew # Nginx起動 sudo systemctl start
  • Docker利用中の状況では、どのようにLet's Encryptを更新したら良いでしょうか?

docker-compose.yml

yml

1version: '3.7' 2 3services: 4 web: 5 build: 6 context: ./test 7 dockerfile: Dockerfile.prod 8 command: gunicorn test.wsgi:application --bind 0.0.0.0:8000 9 volumes: 10 - static_volume:/home/app/web/staticfiles 11 - media_volume:/home/app/web/mediafiles 12 expose: 13 - 8000 14 env_file: 15 - ./test/.env.prod 16 depends_on: 17 - db 18 celery_worker: 19 command: /bin/sh -c "celery -A test worker -l info " 20 build: 21 context: ./test 22 dockerfile: Dockerfile.prod 23 depends_on: 24 - web 25 - db 26 - redis 27 deploy: 28 replicas: 1 29 restart_policy: 30 condition: on-failure 31 hostname: celery_worker 32 33 celery_beat: 34 build: 35 context: ./test 36 dockerfile: Dockerfile.prod 37 links: 38 - db:db 39 - redis:redis 40 depends_on: 41 - web 42 - db 43 - redis 44 command: /bin/sh -c "celery -A test beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler" 45 redis: 46 image: 'redis:alpine' 47 hostname: redis 48 db: 49 image: postgres:12.0-alpine 50 volumes: 51 - postgres_data:/var/lib/postgresql/data/ 52 env_file: 53 - ./.env.prod.db 54 nginx: 55 build: ./nginx 56 volumes: 57 - static_volume:/home/app/web/staticfiles 58 - media_volume:/home/app/web/mediafiles 59 - ./nginx:/etc/nginx/conf.d 60 - /etc/letsencrypt:/etc/letsencrypt 61 ports: 62 - 8080:80 63 - 443:443 64 depends_on: 65 - web 66 67volumes: 68 postgres_data: 69 static_volume: 70 media_volume: 71

補足情報(環境)

  • Ubuntu Server上のDocker環境で、Nginx・gunicornを用いて起動しています。

お分かりの方、ご教示頂けるとありがたいです。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Let's Encrypt がホスト側でこれまでどのように管理されているか分からないのですが、以下アドバイスは既に動かされている環境が影響を受けないよう、別のホストなどで確認/検証の上、試されるのをお薦めします。

一般的なアドバイスとなりますが、Nginx で設定ファイルを読み込み直すには、コマンドラインでは「nginx -s reload」です( 参考 NGINX Docs | Controlling NGINX Processes at Runtime

これは、これまで Ubuntu Server 上で「sudo systemctl stop nginx」「sudo systemctl start」に相当します。

手順としては、Let's Encrypt の設定ファイルを更新後、Nginx のコンテナ内にアタッチして「nginx -s reload」すると、Nginx は設定ファイルを再読込して更新できるでしょう。

ただし、既に環境を動かされていたり、Docker ボリュームで Nginx の設定ファイルや Let's Encrypt 関連ディレクトリをマウントされていることから、実際の環境とは別の場所で検証後されてみてはいかがでしょうか。

繰り返しとなりますが、これは一般的な方法で、もしかしたら解決できないかもしれません。特に、Nginx の設定や Dockerfile 次第ですが、もしこれらファイルを書かれたのが別の方であれば、その方に Nginx の管理方針や手順などを確認されたほうがいいと思います。

投稿2021/04/13 21:33

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問