🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

Q&A

1回答

4429閲覧

GitLab CI/CDを用いた簡易な自動デプロイを行いたいです

ruuuu

総合スコア176

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

1グッド

0クリップ

投稿2020/11/25 11:03

編集2020/11/25 11:09

GitLab CICDを用いて、ローカルでプッシュしたらサーバー側で「git pull origin develop」を行うという簡易な自動デプロイを試してみたのですが、エラーが出てしまい失敗してしまいます。
以下は、GitLab Runnerのインストールから行なった全ての手順になります。

sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

sudo chmod +x /usr/local/bin/gitlab-runner


sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start


sudo gitlab-runner registerにより、Runnnerを登録
executorには、「shell」を選択しました。

設定は developers.ioの記事や、公式ドキュメントを参考に行いました。

以下は、.gitlab-ci.ymlファイルの中身になります。

stages: - deploy deploy: stage: deploy script: - cd /var/www/test/tool && git pull origin develop

エラーの詳細は以下になります。

Running with gitlab-runner 13.6.0 (8fa89735) on for test Jfk5sPs- Preparing the "shell" executor 00:00 Using Shell executor... Preparing environment 00:00 Running on ip-172-48-110-13... Getting source from Git repository 00:02 Fetching changes with git depth set to 50... Reinitialized existing Git repository in /home/gitlab-runner/builds/Jfk5sPs-/0/test/tool/.git/ Checking out 2b5088c6 as develop... Skipping Git submodules setup Executing "step_script" stage of the job script 00:00 $ cd /var/www/test/tool && git pull origin develop error: cannot open .git/FETCH_HEAD: Permission denied Cleaning up file based variables 00:00 ERROR: Job failed: exit status 1

試したこと

1.git/以下の権限を「777」に変更
2 所有者のグループをsudo chown -R ubuntu:gitlab-runner .git/とし、gitlab-runnerを指定
3 .gitlab-ci.ymlファイルの、git pull origin developsudo git pull origin developに変更

1,2番目ついては試してのですが、エラー内容は変わらず同様の内容のものが表示されてしまっおり、3番目に関しましては、エラー内容に変更があり「no such file or directory」と表示されました。

※環境情報
OS:Ubuntu 18.04(AWS EC2)

どなたか、エラー解決の為、ご助言頂けましたら幸いです。
よろしくお願いします。

masomi79👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

/var/www/test/tool 配下には、pullしたいリポジトリーがgit cloneされている前提でしょうか?

投稿2020/11/26 03:51

TeeTeeRuu

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuuu

2020/11/26 06:32

はい。「 /var/www/test/tool 」こちらのディレクトリは既にGitの管理下にある状態となっております。
TeeTeeRuu

2020/12/03 12:08

どうなっているか、今のエラーログではわかりにくいので、以下のようにしてみたらどのようになっているか分かるかも知れません。 ``` script: - id - cd /var/www/test/tool - ls -la - git pull origin develop ``` もしくは、そもそも /var/www/test/tool をgit pullするのではなくて、 ``` script: - id - rm -rf /var/www/html/tool/ - rsync -arvz . /var/www/html/tool/ - cd /var/www/html/tool/ - ls -la ``` とするかですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問