A. やりたいこと
条件
- 同一サーバに2つのコンテナ版GitLabを起動している。共通のSSL証明書を使用している。
- publishしているhttpsポート番号を443と4443に分けている。以下のようなかんじ
ここの、443から4443に、プロジェクト(リポジトリ)をコピーしたい
B. 手順
- 4443側(コピー先)に同名で空のプロジェクトを作成する。README等も作らない。
- 「コピープロジェクトスクリプト」を実行する
- 以上
コピープロジェクトスクリプト
#!/bin/bash
PJ=$1
cd /tmp
git clone https://gitlab.hogehoge.net/fugafuga/$PJ.git
cd $PJ
git remote rename origin old-origin
git remote add origin https://gitlab.hogehoge.net:4443/fugafuga/$PJ.git
git push --set-upstream origin --all
git push --set-upstream origin --tags
rm -rf /tmp/$PJ
C. まとめ
- バージョンの異なるGitLab間でのプロジェクトコピーが必要だったので、「A.やりたいこと」を実現する方法を色々試行しました。最終的にたどりついた「B. 手順」が、一番楽でした。
- コピープロジェクトスクリプトも同じサーバーで起動しようとしましたが、さすがにダメでした。サーバーの外から実行するとうまいいきました。
- gitコマンドだけなので、GitHubからのコピー等もうまくいくと思います。