Docker ~本番環境に導入(AWS)~

前回はローカル環境でDockerを導入しました。今回は既にAWSを使用して本番環境にデプロイしているEC2サーバーにDockerを導入したいと思います。

手順はdocker-composeコマンドで実行していきます。
※AWSのECS(コンテナ管理サービス)は利用していません。

EC2にDockerをインストール

本番環境のEC2サーバーへログインして、Dockerをインストールします。

sudo yum install -y docker  
sudo service docker start  
sudo usermod -a -G docker ec2-user

Dockerをインストールして、ec2-userをdockerグループに入れることで、dockerコマンドが実行できます。

docker-composeをインストール

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

バージョン確認でインストールが出来ているのか確認しておきます。

docker-composeファイルをつくる

ローカル環境と同様に本番用のdocker-composeファイルを作ります。自分はローカルで作ったdocker-compose.ymlファイルをコピーしてdocker-compose-production.ymlというファイルをEC2の中でつくりました。

毎回この黒い画面のなかでの操作は冷や冷やします…。笑

間違えないように、ゆっくりと

version: "3.8"
volumes:
  php-fpm-socket:
services:
  app:
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
    volumes:
      - php-fpm-socket:/var/run/php-fpm
      - .:/work/backend
    environment:
      - DB_CONNECTION=mysql
      - DB_HOST=RDSユーザー名
      - DB_PORT=3306
      - DB_DATABASE=XXXX
      - DB_USERNAME=XXXX
      - DB_PASSWORD=XXXX

  web:
    build:
      context: .
      dockerfile: ./docker/nginx/Dockerfile
    ports:
      - ${WEB_PORT:-80}:80
    volumes:
      - php-fpm-socket:/var/run/php-fpm
      - .:/work/backend

データベースはRDSを使用しているのでローカルで書いていたDBについては消して、appの中にRDSの情報を書いていきます。

docker-composeコマンドを実行

最後にファイル名を指定してコマンドを実行します。ローカルのdocker-compose.ymlを実行しないように注意!

docker-compose -f docker-compose-production.yml up -d

ブラウザでアクセス出来ていたら完了です!

by
関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です