🖥️

localで立てたjupyterlabとgitlabのリモートリポジトリを連携する

2024/06/27に公開

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(ブラウザアクセス)

作業内容:

1.4. gitlab プロジェクトへの接続情報のコピー

作業環境:

  • gitlab(ブラウザアクセス)

作業内容:

  • 以下のページからgitlabプロジェクトへの接続情報をコピーしておく
  • ページから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、メールアドレスを取り除き(メールアドレスの直前にある空白も取り除く)登録すると解決された

X. ref

GitHubで編集を提案

Discussion