🌍

Amazon lightsailにdockerとneo4jとMySQLを同居させる

2023/04/16に公開

前回neo4jをdockerで起動できるようにしたので、MySQLも同居させてみる
aws lightsailのvCPU:1 メモリ:1GBでは性能が乏しいのでvCPU:2 メモリ:4GBに変更($20)

docker-composeをインストール

docker-composeをダウンロード
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
実行権限付与
sudo chmod +x /usr/local/bin/docker-compose
インストール確認
docker-compose -v

docker-composeファイル作成

docker-compose.yml
version: '3'

services:
  graph-db:
    # イメージの指定
    image: neo4j:latest
    # コンテナ名の指定
    container_name: neo4j
    # 環境変数
    environment:
      - NEO4J_AUTH=neo4j/{お好きなパスワード}
    # ポートのマッピング
    ports:
      - "7474:7474"
      - "7687:7687"
    # ボリュームのマウント
    volumes:
      - $HOME/neo4j/data:/data
    # ネットワークの定義
    networks:
      - test_network

  rdb:
    image: mysql:8
    container_name: mysql8
    environment:
      MYSQL_ROOT_PASSWORD: {お好きなパスワード}
      MYSQL_DATABASE: sample_db
      MYSQL_USER: sample_user
      MYSQL_PASSWORD: {お好きなパスワード}
    ports:
      - "3306:3306"
    volumes:
      - ./mysql-data:/var/lib/mysql
      - ./mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf
    networks:
      - test_network

# ネットワークの定義
networks:
  test_network:
    driver: bridge
mysqld.cnfを作成(docker-compose.ymlと同じディレクトリに作成してください)
[mysqld]
default-authentication-plugin=mysql_native_password
character-set-server=utf8mb4

[client]
default-character-set=utf8mb4

コンテナ起動

docker-compose -f docker-compose.yml up -d
起動確認
docker ps -a
neo4j接続確認
http://{lightsailのPublic IPを指定}:7474/
mysql接続確認
docker-compose exec rdb bash
mysql -u root -p

show variables like '%char%';
↑文字コード、照合順序がutf8mb4になっていることを確認

show databases;
![](https://storage.googleapis.com/zenn-user-upload/e8480864b966-20230416.png)
※sample_dbが作成されていること

Amazon lightsailにdockerとneo4jとMySQLを同居させてみた
ローカルで環境作っても問題ありません
私は別の人にアクセスさせ動作説明をする必要があり、安く済ませたかったので
awsを利用しました

最後までご覧頂き有難うございました。
コメント頂ければ嬉しいです!

Discussion