サイト運営を目標に現在勉強中です。
浅学ゆえの未熟な質問、ご容赦ください。
ご助力いただけますと大変助かります。
前提・実現したいこと
- バーチャルホストによるマルチドメインサイトのウェブサーバのひとつをKusanagi Runs on Dockerで構築したい
実現イメージは下記の記事です。
環境
<利用サービス>
DNS:さくらのクラウドDNS
サーバ:さくらのVPS
CDN:さくらのウェブアクセラレータ
メールサーバ:さくらのメールボックス
<バージョン>
OS
CentOS Linux release 7.8.2003 (Core)
Docker
Docker version 19.03.11
docker-compose version 1.14.0
<現在の構成>
※ウェブサーバは現在、NGINXで構築しています。
表示されるページは、ネイキッドドメイン、サブドメインともに想定通りのページが表示されることを確認済みです。
ワイルドカード証明書は、Let's Encryptのcertbot-dns-sakuracloudプラグインにて取得しています。
/etc/vps/portal
├─docker-compose.yml…リバースプロキシ用
├─certs …ワイルドカード証明書のシンボリックリンクを格納
├─lib
├─public
│ ├─index.html …hoge.com
│ ├─aaa
│ │ └─index.html …aaa.hoge.com
│ ├─bbb
│ │ └─index.html …bbb.hoge.com
: :
: :
│ └─img
│ └─1.jpg
├──vhosts
│ ├─hoge.com
│ │ ├─docker-compose.yml …hoge.com
│ │ └─conf
│ │ └─default.conf
│ ├─aaa
│ │ ├─docker-compose.yml …aaa.hoge.com
│ │ └─conf
│ │ └─default.conf
│ ├─bbb
│ │ ├─docker-compose.yml …bbb.hoge.com
│ │ └─conf
│ │ └─default.conf
試したこと・わからないこと
下記の記事を参考に試してみたのですが、docker-compose up -d後、
プロセスを確認して見るとkusanagi-nginxのコンテナのステータスが「Exited (1)」となってしまい、
セットアップ画面を表示することができませんでした。
元の記事のdocker-compose.yml との内容の差分としましては、
証明書部分、ボリューム部分、ポート部分、設定ファイル部分が大きな差異なので、
そのあたりに要因があるのではないかと思うのですが、どうにも自己解決できませんでした。
お手数ですが、ご教授いただければ幸いです。
補足情報
現在のdocker-compose.yml、NGINX用default.confは以下になります。
<リバースプロキシ用>
/etc/vps/porta/docker-compose.yml
version: '2' services: nginx-proxy: restart: always image: jwilder/nginx-proxy container_name: nginx-proxy ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - /etc/nginx/ssl:/etc/nginx/dhparam:ro - /etc/letsencrypt/live/hoge.com:/etc/letsencrypt/live/hoge.com:ro - /etc/letsencrypt/archive/hoge.com:/etc/letsencrypt/archive/hoge.com:ro - /etc/vps/portal/certs:/etc/nginx/certs:ro networks: - common_link networks: common_link: external: name: common_link
<現在のウェブサーバ(サブドメイン)>
/etc/vps/porta/vhosts/aaa/docker-compose.yml
version: '2' services: secondary: restart: always image: nginx container_name: secondary environment: - VIRTUAL_HOST=aaa.hoge.com volumes: - /etc/vps/portal/vhosts/aaa/conf/default.conf:/etc/nginx/conf.d/default.conf - /etc/vps/portal/public:/usr/share/nginx/html networks: - common_link networks: common_link: external: name: common_link
/etc/vps/portal/vhosts/aaa/conf/default.conf
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html/aaa; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/aaa; } location ~* .(gif|jpe?g|png|ico)$ { add_header Cache-Control "s-maxage=86400, public"; root /usr/share/nginx/html/aaa; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /.ht { # deny all; #} }
<kusanagi用>
/etc/vps/porta/vhosts/kusanagi01/docker-compose.yml
version: '2' services: kusanagi-data: container_name: kusanagi-data image: busybox restart: always stdin_open: true tty: true volumes: - /var/lib/mysql - /etc/nginx/ssl:/etc/nginx/dhparam:ro - /etc/letsencrypt/live/hoge.com:/etc/letsencrypt/live/hoge.com:ro - /etc/letsencrypt/archive/hoge.com:/etc/letsencrypt/archive/hoge.com:ro - /etc/vps/portal/certs:/etc/nginx/conf.d:ro - /etc/vps/portal/certs:/etc/httpd/conf.d:ro - /etc/kusanagi.d - /home/kusanagi command: /bin/sh kusanagi-nginx: container_name: kusanagi-nginx image: primestrategy/kusanagi-nginx:latest environment: - VIRTUAL_HOST=kusanagi01.hoge.com - WPLANG=ja - BCACHE=on - FCACHE=on volumes_from: - kusanagi-data links: - kusanagi-php7:php - kusanagi-mariadb:mysql ports: - "443" - "80" networks: - common_link kusanagi-mariadb: container_name: kusanagi-mariadb image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: t8gp9wue MYSQL_USER: dbuser MYSQL_PASSWORD: c7sx5vk3 MYSQL_DATABASE: wpdb volumes_from: - kusanagi-data networks: - common_link kusanagi-php7: container_name: kusanagi-php7 image: primestrategy/kusanagi-php7:latest links: - kusanagi-mariadb:mysql volumes_from: - kusanagi-data networks: - common_link networks: common_link: external: true
以上、よろしくお願いいたします。
あなたの回答
tips
プレビュー