indexgo
login

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

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

作成者:Ssさん 公開日:2018年9月06日 15時26分 更新日:2018年9月06日 15時26分

コンテナ構成

# 共通ネットワーク
common_link

# MySQLコンテナ
dbというリンク名でdocker-composeで別途立ち上げ済。
common_linkに接続。

# nginx-proxyコンテナ
Let's Encryptコンテナと同時にdockerでdocker-composeで別途立ち上げ済
common_linkに接続。

# 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はサクッと機能を追加できて便利!

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