🖥️
localで立てたjupyterlabとgitlabのリモートリポジトリを連携する
0. 前提条件
-
環境
- docker host: ubuntu 20.04
- docker image: jupyter/datascience-notebook (latest)
- docker container: ubuntu 22.04.3 LTS
- すでに docker container 内の ubuntu には、gitのinstallが済んでいる状態
-
やりたいこと
- すでにローカルではある程度ソースコードがある
- gitlab上に新しくリポジトリ(プロジェクト)を作成し、ソースコードそリモートリポジトリに add し、push する
- リモートリポジトリが空なので、git clone によるソースコードのクローンは行わない。
1. 作業手順
1.1. gitlab プロジェクト準備
作業環境:
- gitlab(ブラウザアクセス)
作業内容:
-
https://gitlab.com/ にアクセスし、新規プロジェクトを作成する
- Your work > Projects > New project
- 設定諸元は以下
- "create blank project"
- project name: 任意
- group or namespase: 任意(今回は時分自身のnamaspaceを使用)
作業後確認:
- gitlab内に新規プロジェクトができていること
- また、このときに、以下のページからgitlabのユーザ名称とメールアドレスを控えておく
- User Settings > Profiles
- User Settings > Emails
1.2. ssh接続準備
1.2.1. sshkey作成
目的:
- gitlab とssh接続する際、ssh鍵を使用して接続を行う場合に秘密鍵、公開鍵を作成する
- 別に通常のユーザ認証を行う場合はこの設定はなくてもよいが、セキュリティ上ssh鍵を使用したほうが良い
作業環境:
- JupyterLab上端末エミュレータ
作業内容:
- 作業ユーザのホームディレクトリに移動、必要にうじて.sshディレクトリを作成
cd ~
mkdir .ssh
cd .ssh/
- .sshディレクトリ内に以下2つのファイルを作成する
- id_rsa.pub
- id_rsa
ssh-keygen -t rsa -C [gitlab_Email]
ls
- セキュリティ上の観点から、秘密鍵のパーミッションをオーナーのみ読込専用にしておく
chmod 600 id_rsa
ls
- gitlab上の公開鍵登録のため、公開鍵の内容をコピーしておく。このとき、末尾のメールアドレスは除外してコピーすること
cat id_rsa.pub
1.2.2. ssh config ファイル作成
目的:
- SSHの接続情報を管理しやすくするため、 .ssh/config ファイルにて、当該リポジトリ(gitlab プロジェクト)にて使用する接続情報を記載しておく
- これもなくても良いっちゃ良いが、あったほうが楽なので設定しておくことを推奨
作業環境:
- JupyterLab上端末エミュレータ
作業内容:
- .ssh/config の新規作成
- 以下の内容を記載しておく
vi ~/.ssh/config
例:
Host [接続名称(任意の文字列)]
User git
Port 22
HostName gitlab.com:[gitlab_user]
TCPKeepAlive yes
identitiesonly yes
identityFile ~/.ssh/id_rsa
1.3. SSH公開鍵登録
作業環境:
- gitlab(ブラウザアクセス)
作業内容:
- 以下のページからSSH公開鍵を登録する
-
https://gitlab.com/-/user_settings/ssh_keys
- Add new key
-
https://gitlab.com/-/user_settings/ssh_keys
1.4. gitlab プロジェクトへの接続情報のコピー
作業環境:
- gitlab(ブラウザアクセス)
作業内容:
- 以下のページからgitlabプロジェクトへの接続情報をコピーしておく
-
https://gitlab.com/[gitlab_user]/[gitlab_PJ]
- CODE > Clone with SSH
-
https://gitlab.com/[gitlab_user]/[gitlab_PJ]
- ページからgitlabのユーザ名称とメールアドレスをコピーしておく
- User Settings > Profiles
- User Settings > Emails
1.5. docker 内でのローカルリポジトリ作成
作業環境:
- JupyterLab上端末エミュレータ
作業内容:
- gitlab ローカルリポジトリの初期設定を行う
git config --global user.name [gitlab_user]
git config --global user.email [gitlab_Email]
git init
- 状態の確認を行う
git status
- テストコミット用のファイルを作成し、git管理対象に追加する
vi test.txt
git add test.txt
git status
- リモートリポジトリを追加する
git remote add [リポジトリ名称] ["1.4." でコピーしたgitlabプロジェクト接続情報]
- 変更のコミット
git commit -m "first commit"
- 変更のpush
git push [リポジトリ名称]
2. トラブルシューティング
2.1. リポジトリありません
以下のエラーが出てきた場合。
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
今回はsshkeyの公開鍵登録の部分で間違っていた。
公開鍵の末尾にあるメールアドレスまで入力してしまうとNG、メールアドレスを取り除き(メールアドレスの直前にある空白も取り除く)登録すると解決された
Discussion