#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, ユーザー, アカウント, 複数, 管理};
| Pitan |
![]() |
| プログラミングや音MADやらが趣味 |
[もっと見る]
[もっと見る]