どうも、三町哲平です!!
今回は、私がRailsでポートフォリオを作成した際に何度も利用したコマンドの備忘録です。ノートにメモしていたので毎回毎回パソコンで打ち直していたのですが、コピペした方が作業効率も上がるので、まとめました。
皆さんの問題解決へのヒントになれば幸いです。
ちなみに私のポートフォリオは、
下記の様になっています。
使用した技術
-
フロントエンド
- HTML/CSS
- JavaScript
- jQuery
- Bootstrap
-
バックエンド
- Ruby 3.0.1
- Ruby on Rails 6.1.3.1
-
インフラ・開発環境
- MacBook Air macOS Big Sur 11.3.1
- Docker/Docker-compose
- AWS(ECR,ECS(EC2),VPC,S3,Route53,ALB,RDS(PostgreSQL 12.5),ACM)
- Nginx/Puma
-
テスト
- Rspec (単体・統合)
- CircleCIにてDocker-composeよりコンテナを構築し、自動テスト
-
その他使用技術
- YouTube Data API
- Ajax(非同期通信)(投稿へのコメント・いいね、ユーザーのフォロー)
- LINE/Twitterの記事シェアボタン
- 無限スクロール(jScroll)
- GitHub
インフラ構成図
※ ↓ここから備忘録です。
コマンド5選
1. Dockerで立ち上げたRailsのlogを出力する。
ターミナル
$ docker-compose up -d
$ tail -f log/development.log
2. 開発環境で、assets:precompileする。
ターミナル
$ docker-compose build --no-cache
$ docker images
$ docker run -it 98582946a6a3 /bin/bash
# docker run -it RailsアプリのIMAGE_ID /bin/bash
$ bundle exec rails assets:precompile
# ↑このコマンドのみ(root@297b50c0ee64:/illustrations#)起動中Railsコンテナ内で実行
$ docker ps
$ docker commit f9391be94fab illustrations_app:latest
# docker commit 起動中RailsアプリのCONTAINER_ID 新しいアプリ名:latest
$ docker stop f9391be94fab
# docker stop 起動中RailsアプリのCONTAINER_ID
3. 定期的にdocker関連の不要なファイルを削除する
ターミナル
$ docker system prune
4. ECR,ECS(EC2)使用時、ECRのimageを更新した後にcontainerを手動更新する。
ターミナル
$ ssh -i ~/Desktop/aws-and-infra-ssh-key.pem ec2-user@00.000.000.00
# <<例>>
# pemファイル名 aws-and-infra-ssh-key.pem がローカル環境のデスクトップ上にある
# ユーザー名 ec2-user
# EC2パブリック IPv4 アドレス 00.000.000.00
__| __| __|
_| ( \__ \ Amazon Linux 2 (ECS Optimized)
____|\___|____/
$ sudo systemctl restart docker
$ docker images
$ docker rmi -f 98582946a6a3 a13a9af53122
# docker rmi -f RailsアプリのIMAGE_ID WebサーバーのIMAGE_ID
5. ECS(EC2)からRDS(PostgreSQL)のdb:resetする。
ターミナル
$ ssh -i ~/Desktop/aws-and-infra-ssh-key.pem ec2-user@00.000.000.00
# <<例>>
# pemファイル名 aws-and-infra-ssh-key.pem がローカル環境のデスクトップ上にある
# ユーザー名 ec2-user
# EC2パブリック IPv4 アドレス 00.000.000.00
__| __| __|
_| ( \__ \ Amazon Linux 2 (ECS Optimized)
____|\___|____/
$ docker ps
$ docker exec -it d3e294bc6927 /bin/bash
# docker exec -it RailsアプリのCONTAINER_ID /bin/bash
$ echo $DB_DATABASE
$ DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rails db:reset
# RDSをAWSマネジメントコンソールから アクション→再起動 を押して、再起動中に実行する
以上です。