はじめに
Git / Docker 触り始めたマンです。
実際使いだすと、ウッ過去の苦手意識が・・・
となりましたが、なんとかやってます。
今回は、とりあえず「実際に使ったコマンド」のみを記録する記事です。
流れを整理しつつ、実務ベースで習得していきたい!!
※Dockerfile
の作成などはなく、すべて引っ張ってくるケースです。
コマンドず
1. 下準備:git clone
git clone URL
でclone
してくる。
ユーザー名とパスワードが必要な場合も
2. Dockerでイメージのビルド
-
docker compose build
docker-compose.yaml
ファイルで定義されたすべてのサービスのイメージをビルド -
docker compose up
ビルドしたサービスを起動(イメージがビルドされてなければ自動でdocker compose build
を行うらしい?)。
3. ビルドされたサービスの中身を準備・起動
-
docker-compose exec web bash
web
というコンテナ(サービス)の中でbash
シェルを開始。これにより、「コンテナ内のCLI操作」が可能に。
(docker-compose exec
コマンドは、稼働中のコンテナ内に入りコマンドを実行する。)
(web
はdocker-compose.yaml
ファイルで定義されている) -
bundle install
Rubyの依存関係管理ツールBundler(gemのversion依存関係管理)
を使用して、依存関係(gem
)インストール。これにより、Railsが必要とするすべてのRubyライブラリがインストールされる。 -
yarn install
JSのパッケージマネージャーyarn
を使用して、package.json
に定義された依存関係をインストール。 -
bin/rails db:create
Railsのコマンドラインツールを使用して、データベースを作成。database.yml
ファイルで指定された設定に基づき、必要なデータベースをセットアップ -
bin/dev
Railsアプリケーションのサーバーが起動し、開発に必要な他のサービス(例えば、Webpacker、CSSのコンパイルサービスなど)も同時に起動。これにより、開発者は一つのコマンドでRailsアプリケーションの全ての関連サービスを起動できる。
(Rails 7以降で導入された新しい開発サーバー起動コマンド)
4. ブランチを切る(新しいブランチを作成)
git switch -c branch_name
ブランチを切る(新しいブランチを作成)。git checkout -b branch_name
というやり方もあるが、checkout
コマンドは推奨されない。
5. コーディング・開発
僕の場合はhttp://localhost:3000/welcomes
にアクセスしつつ、VSCodeでコーディング
6. テスト(spec
の実行)
docker compose run web bundle exec rspec
web
の中で新しいコンテナを作成し、Bundlerを使用して指定されたコマンド(rspec
)を実行。
rspec
はRubyで広く使用されているテストフレームワーク。
※docker compose run
はdocker compose exec
と同じくコンテナ内に入りコマンドを実行する。
違いは、run
は新しいコンテナを作成するのに対し、exec
は既存のコンテナに入る。
※bundle exec
を使用すると、Bundlerに従って正しいバージョンのrspec
が使用されることが保証される。
~~ 0 failures
と表示されたら成功。
7. コミット・プッシュ
-
git add file_name
ステージング -
git commit -m 'message'
コミット -
git push origin branch_name
ローカルのブランチをリモートリポジトリ(通常はorigin
)にpush
する。
add
/ commit
/ push
の前にgit status
でステージング漏れがないかチェックすると良い。
ちゃんとcommit
できたか不安ならgit log
でコミット履歴を表示できる。
また、git log -p file_name
で、詳細な変更履歴を見ることができる。
その他注意事項
所有者の変更
「Docker上で生成されたファイルは、所有者が異なるユーザーになっており、そのままでは編集できません。」の場合がある。
権限と所有者はls -l [directory_name]
コマンドで確認できる。
所有者の変更は、ルートディレクトリでsudo chown -R $USER ./
でできる。
./
:現在のディレクトリを、sudo
:管理者権限で、chown
:change owner
するよ、-R
:再帰的に(ファイルとサブディレクトリも)。owner
は$USER
:現在ログインしているユーザーにしてね。
終わりに
書くことで頭の中でまとまったかな!と思います。見返せるし。
今日中に追記あればしていく予定!
あと、Docker / Git がいい感じにまとまってるサイト、おすすめの本、他経験談などあればお聞きしたい!TwitterでもQiitaでも。
お待ちしております。