6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

docker-compose upでWordPressを動かす(もちろんHTTPS)

Last updated at Posted at 2022-09-09

はじめに

ふとおもいつきでWordPressのサイトを立ち上げました。
docker-compose.ymlを書いておきます。

docker-compose.yml

docker-compose.yml
services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - certs:/etc/nginx/certs
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro

  nginx-proxy-acme:
    image: nginxproxy/acme-companion
    container_name: nginx-proxy-acme
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - acme:/etc/acme.sh
      - certs:/etc/nginx/certs
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
    environment:
      - DEFAULT_EMAIL=example@example.com
      - NGINX_PROXY_CONTAINER=nginx-proxy
    depends_on:
      - nginx-proxy

  wordpress:
    image: wordpress
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
      VIRTUAL_HOST: wordpress.autoracex.dev
      VIRTUAL_PORT: 80
      LETSENCRYPT_HOST: wordpress.autoracex.dev
      LETSENCRYPT_EMAIL: example@example.com
    volumes:
      - wordpress:/var/www/html
    depends_on:
      - nginx-proxy-acme

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql
    depends_on:
      - nginx-proxy-acme

volumes:
  certs:
  vhost:
  html:
  acme:
  wordpress:
  db:

環境変数

以下の環境変数の値は適宜書き換えてください。

  • DEFAULT_EMAIL
  • VIRTUAL_HOST
  • LETSENCRYPT_HOST
  • LETSENCRYPT_EMAIL

以下の環境変数にはそれぞれ同じ値を設定してください。

  • WORDPRESS_DB_NAMEとMYSQL_DATABASE
  • WORDPRESS_DB_USERとMYSQL_USER
  • WORDPRESS_DB_PASSWORDとMYSQL_PASSWORD

Let's Encrypt

Let's EncryptでSSL証明書を取得しています。
nginxproxy/acme-companionが取得してくれます。
また有効期限が近くなったら自動的に更新してくれます。

前提として、VIRTUAL_HOSTとLETSENCRYPT_HOSTに設定したドメインのAレコードには、動作させているサーバのIPアドレスが設定されているものとします。

動かし方

$ docker-compose up -d

参考記事

Dockerを使ってLivebookとGrafanaをサーバ上でイゴかす(もちろんHTTPS)

自分で書いた記事です。

おわりに

ふとおもいつきでWordPressのサイトを立ち上げて、ふとおもいつきでそのままQiitaにdocker-compose.ymlファイルを書いておきました。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?