beta

nginx-proxy環境下で、phpMyAdminをdocker-composeで立ち上げる

nginx-proxy環境下で、phpMyAdminをdocker-composeで立ち上げる方法をいつも忘れるので、メモとして残します。MySQLコンテナは別のdocker-composeでアップしてある前提です。

公開日:2018年9月6日

コンテナ構成

  • 共通ネットワーク: common_link
  • MySQLコンテナ: dbというリンク名でdocker-composeで別途立ち上げ済。common_linkに接続。
  • nginx-proxyコンテナ: Let’s Encryptコンテナと同時にdockerでdocker-composeで別途立ち上げ済common_linkに接続。
  • phpMyAdmin <– ここをやる :

phpMyAdminコンテナは、MySQLコンテナにリンクさせつつ、nginx-proxyを経由させて、独自ドメイン&SSL化をするようにします。

docker-compose.yml

version: '2'

services:
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_HOST=mysql
      #- PMA_ARBITRARY=1 
      #- PMA_USER=root
      #- PMA_PASSWORD=root
      - VIRTUAL_HOST=example.com
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=example.com
      - LETSENCRYPT_EMAIL=admin@example.com
      - LETSENCRYPT_TEST="false"
    ports:
       - 80
    external_links:
      - db:mysql
    volumes:
       - /sessions
       - ./php.ini:/etc/php7/conf.d/php.ini:ro
    networks:
      - common_link
    restart: always
networks:
  common_link:
    external: true

コメントアウトしてある部分の補足

- PMA_ARBITRARY=1

phpMyAdminを複数のDBサーバーに繋いで一括管理する場合の変数。 コメントアウトすると、リンクされているDBにいきなり接続、設定をするとログイン画面でサーバーを選択できます。

- PMA_USER=root

- PMA_PASSWORD=root

設定しておくといきなりログインでいます。 今回のように、独自ドメインを設定する以上インターネットに公開する前提なので、セキュリティ的にコメントアウトするのがよろしいでしょう。

Dockerはサクッと機能を追加できて便利!

ブログやノートを書く度に行ってる気がする。