Gitユーザーの複数管理のためにDockerを使う の変更点
#author("2025-03-08T18:14:12+09:00","default:pitablog","pitablog")
#author("2025-03-08T18:14:23+09:00","default:pitablog","pitablog")
* Gitユーザーの複数管理のためにDockerを使う [#s0d4f65f]
#splitbody{{
LEFT:
&tag(情報技術,Git,GitHub,Docker);
#split
RIGHT:&size(13){投稿日: 2025-03-07 (金)};
}}
#bcontents
** はじめに [#ta519b4d]
ホスト側はネット名(ハンドルネーム)のGitHubアカウント、コンテナ側は実名のGitHubアカウントにして間違えて実名でコミットしないようにしたいと思う。
VBで昔、複数アカウント管理ツールを作ったのだがそれだとやっぱり誤爆する危険性があると思った。
ちな、Windowsコマプロ前提なのでそれ以外ならその環境にあわせて解釈するかでどうにかしてください
** Dockerfile [#fcbe4786]
最新のUbuntuベースにgitやpython、phpなど便利そうなものもインストールするようにしときます。
#gcode(Dockerfile){{
FROM ubuntu:latest
# インストール
RUN apt update && apt install -y \
git \
python3 python3-pip \
php-cli php-curl php-mbstring php-xml \
composer \
curl \
unzip zip \
vim nano \
wget \
&& apt clean
# Git
ARG GIT_USER="ユーザー名"
ARG GIT_EMAIL="メールアドレス"
RUN git config --global user.name "$GIT_USER" \
&& git config --global user.email "$GIT_EMAIL" \
&& git config --global gpg.format ssh \
&& git config --global user.signingkey ~/.ssh/id_rsa.pub
# SSH
COPY id_rsa /root/.ssh/id_rsa
COPY id_rsa.pub /root/.ssh/id_rsa.pub
RUN chmod 600 /root/.ssh/id_rsa && chmod 644 /root/.ssh/id_rsa.pub
}}
もし、git以外いらなかったらpython3からwgetまで必要に応じて消してください
** SSHキー生成 [#u9df834f]
Dockerfileと同じディレクトリでSSHキーを生成する
ssh-keygen -t ed25519 -C "メールアドレス" -f id_rsa
パスフレはとりあえずEnter押して飛ばした。
厳密に管理する必要がある場合は入力した方がいいでしょう(ちなみにパスフレを設定してもSSH-agentを使うとパスを入力する手間もなくなります)
COPY id_rsa /root/.ssh/id_rsa
COPY id_rsa.pub /root/.ssh/id_rsa.pub
でコピーされるSSHキーを生成するだけ
** ビルド [#g9be2fc5]
docker build -t fullname .
** repo/フォルダつくる [#qa834984]
Dockerfile入れてるところと同じフォルダにマウント用にrepo/つくっとく。
不要なら次のステップで-v %CD%:/repoは不要
** 作成と同時にシェルに入る [#mee27001]
docker run -it --name fullname-container --hostname fullname -v %CD%:/repo fullname /bin/bash
`-v`でマウントしてます。%CD%はホスト側のカレントディレクトリです。つまり「-v ホスト側:コンテナ側」です
まあ、私は「%CD%\repo:/repo」にしました。イメージ的にはホスト側の./repoとコンテナ側の~/repoがリンクされる感じです。(マウントする)
`--hostname`はホスト名です。root@xxx:のxxxの部分を変更できます。(なしでも問題ないですが、それだとコンテナidになります)
** 作成 [#h15fb192]
docker run -d --name fullname-container --hostname fullname -v %CD%:/repo fullname
-dでバックグラウンド実行するだけ。
** アタッチ(シェルに入る) [#u8329e15]
docker exec -it fullname-container /bin/bash
** 起動 [#h1123a5f]
docker start fullname-container
** チェック [#fed501a6]
git config --global --list
php -v
python3 --version
composer --version
//** sshキーを利用するように設定
// git config --global gpg.format ssh
// git config --global user.signingkey ~/.ssh/id_rsa.pub
** さいごに [#p87172ed]
これでGitの複数垢管理もなんとかなりそう。
ちなみにsshキーで認証するのでリモート先の指定は https:// じゃなくて [email protected]: の方使うとよさそう
ちなみにsshキーで認証するのでリモート先の指定は https:// じゃなくて git@ github.com: の方使うとよさそう
** コメント [#e1eae827]
#pctrlcmt
&size(10){キーワード: 情報技術, Docker, コンテナ, イメージ, Git, GitHub, ユーザー, アカウント, 複数, 管理};