LoginSignup
2
0

More than 1 year has passed since last update.

DockerでGit+Rubyの環境を構築する

Posted at

概要

今回はDockerを利用してGit+Rubyの開発環境を構築します。
DockerfileにエイリアスやLinuxを日本語化する設定も一緒に記載しました。

前提

GitとGitHubとDockerとLinuxのコマンド操作の基本を理解している方を対象としています。

用意する物

カレントディレクトリにDockerfileとsrc/を作成します。src/の中にコンテナにコピーしたいファイルを格納します。今回はGemfileです。

Dockerfile

FROM ruby:3.2.2

WORKDIR /home/work

COPY ./src /home

RUN git config --global user.email "あなたのメールアドレス" && \
    git config --global user.name "あなたの名前" && \
    # vendor/bundleに依存関係をインストールするよう設定する
    bundle config set --local path 'vendor/bundle' && \
    bundle install && \
    echo 'alias g="git"' >> ~/.bashrc && \
    echo 'alias b="bundle exec"' >> ~/.bashrc && \
    echo 'alias r="ruby"' >> ~/.bashrc && \
    git config --global alias.c commit && \
    git config --global alias.s status && \
    git config --global alias.a add && \
    git config --global alias.sw switch && \
    git config --global alias.st stash && \
    git config --global alias.b branch && \
	# Linuxを日本語化する
    apt update && \
    apt install -y locales locales-all && \
    rm -rf /var/lib/apt/lists/*

    ENV LANG ja_JP.UTF-8
    ENV LANGUAGE ja_JP:ja
    
# コンテナを起動した際に設定ファイルを再読み込みさせます。
CMD ["/bin/bash", "-c", "source ~/.bashrc && exec /bin/bash"]

Gemfileの例です。

# frozen_string_literal: true

source "https://rubygems.org"

gem "solargraph"
gem 'rubocop'
gem 'pry'
gem 'pry-byebug'
gem 'pry-doc'

手順

1.Dockerfileがあるディレクトリでイメージを作成します。「.」はカレントディレクトリにあるDockerfaileを参照するという意味です。

docker image build -t ruby:3.2.2 .

2.コンテナを作成します。その際にローカルのGitの管理下にあるディレクトにマウントします。

docker run --name apprentice_ruby -it -v /Gitの管理下のディレクトリ:/home/work ruby:3.2.2

3.SSHキーを作成します。

ssh-keygen -t ed25519 -C "メールアドレス"

4.SSHキーをGitHubの設定のSSH and GPG keysをクリックして New SSH keyにコピペします。※SSHキーが作成されたディレクトリは人によって違うと思います。

cat /root/.ssh/id_ed25519.pub

以上となります。

参考
仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん
Docker超入門講座 合併版 | ゼロから実践する4時間のフルコース

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0