0
1

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 3 years have passed since last update.

Docker環境でmysqlを二つ立ち上げる方法

Last updated at Posted at 2021-05-09

テスト環境と本番環境でDBを分けたいときがあります
そんな時にDockerでDBを二つ立ち上げる方法について記載します

Docker file

まずは結論

version: "3.8"

services:
    app:
        build: ./your/app/dockerfile
        depends_on:
            - mysql
            - test_mysql
        command: execute command
        ports:
            - '8000:8000'
            - '8080:8080'
    mysql:
        build: ./your/mysql/image/path
        environment:
            MYSQL_DATABASE: your_db
            MYSQL_USER: user
            MYSQL_PASSWORD: password
            MYSQL_ROOT_PASSWORD: password
        ports:
            - "3306:3306"
            - "33060:33060"
        volumes:
            - mysql-data:/var/lib/mysql:cached
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        environment:
            - PMA_ARBITRARY=1
            - PMA_HOST=mysql
            - PMA_USER=user
            - PMA_PASSWORD=password
        depends_on:
            - mysql
        links:
            - mysql
        ports:
            - 8090:80
        volumes:
            - /sessions
            - ./tools/phpMyAdmin/php.ini:/usr/local/etc/php/php.ini
    test_mysql:
        build: ./your/test/mysql/image/path
        environment:
            MYSQL_DATABASE: your_test_db
            MYSQL_USER: user
            MYSQL_PASSWORD: password
            MYSQL_ROOT_PASSWORD: password
        ports:
            - "3307:3306"
        volumes:
            - test-mysql-data:/var/lib/mysql:cached
    test_phpmyadmin:
        image: phpmyadmin/phpmyadmin
        environment:
            - PMA_ARBITRARY=1
            - PMA_HOST=test_mysql
            - PMA_USER=user
            - PMA_PASSWORD=password
        depends_on:
            - test_mysql
        links:
            - test_mysql
        ports:
            - 8091:80
        volumes:
            - /sessions
            - ./tools/phpMyAdmin/php.ini:/usr/local/etc/php/php.ini
volumes:
    mysql-data:
    test-mysql-data:

実行方法

注意点

すでにある環境が立ち上げ済みで、dockerファイルを追記していたら、以下のコマンドで、既存のDBデータをすべて消して再度イメージをビルドしなおさないと私の環境ではエラーになりました

**絶対に本番環境ではやらないでください。**データがすべて消えます

//イメージとデータの削除
docker-compose down --rmi all --volumes
//ビルド
docker-compose build --no-cache
//コンテナ立ち上げ
docker-composer up

本番環境:http://localhost:8090/
テスト環境:http://localhost:8091/
で二つphpMyAdminが立ち上がっていると思います
質問や間違いがあればコメントからお願いします!

## 宣伝
ツイッターもやってます
技術や製品開発に関する事などを呟いてますので、フォローお願いします
https://twitter.com/wkyIghw8MlLpyJE

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?