はじめに
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でも。
お待ちしております。