🌍
Amazon lightsailにdockerとneo4jとMySQLを同居させる
※前回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