LoginSignup
0
0

More than 3 years have passed since last update.

DockerのJenkins経由でNuxtアプリをfirebase deploy

Posted at

やりたいこと

  • (目標)URLを叩くと、PULLして、Firebase deployする

Dockerfile

FROM jenkins

USER root
RUN cd tmp/ \
    && wget https://updates.jenkins-ci.org/latest/jenkins.war \
    && mv ./jenkins.war /usr/share/jenkins/

USER jenkins

docker-compose.yml

version: "3"

services:
  jenkins:
    build: .
    ports:
      - 8080:8080
    volumes:
      - ./jenkins_home:/var/jenkins_home

Dockerコマンドで構築

docker-compose up

http://localhost:8080/
image.png
Jenkinsはこれで、構築完了。
空のジョブを一つ作成して、実行しておけば、workspaceができる。
このworkspaceでpullできるように構築する。
image.png
保存
i<br>
mage.png
ビルド実行

Nuxtアプリをビルドしてデプロイできる環境を構築

# ログイン
docker-compose exec jenkins bash  

# sshキーの作成
ssh-keygen 
ls ~/.ssh 
eval `ssh-agent` 
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub # これをバックログのSSH公開鍵に設定

# NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
source /root/.bashrc
nvm install stable

# sudoコマンドインストール
apt update  
apt-get -qq update
apt install -y sudo  
apt-get install build-essential

# ジョブのディレクトリに移動
cd "var/jenkins_home/workspace/My Job"
git clone バックログのSSHのURL

# Nuxtのビルド
npm run i && npm run generate

# firebaseコマンドのインストール
curl -sL https://firebase.tools | bash
firebase login --no-localhost 
# firebase loginはトークンを画面コピーしてターミナルに貼れば認証される

これで、NuxtプロジェクトがビルドできていればOK!

Jenkinsの設定

image.png
ビルドトリガーはURLを叩くと、このジョブが走る設定です。
画面の例だと、
http://localhost:8080/job/amazing-master/build?token=testtesttest
これで、このバッチが動きます。

Jenkinsシェルの実行

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
cd "My Job"
git pull origin master
npm i && npm run generate
firebase deploy
  • npmコマンドの設定
  • git pull
  • nuxt generate
  • firebase deploy を設定

これで、、、
http://localhost:8080/job/amazing-master/build?token=testtesttest

を叩いて、デプロイできれば成功です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0