在 Mac 將 Nuxt.js 專案 Build 成 Docker Image 發佈到 dockerhub

這篇文章寫於 2021 年,文中的工具與版本可能已經更新,實作時請以官方文件為準。

本文目錄
  1. 一、事先準備
  2. 創建 Nuxt.js 專案
  3. 下載 & 安裝 Docker
  4. 二、在 local 把 Nuxt.js 專案 Build 成 docker image
  5. 撰寫 dockerfile & .dockerignore
  6. 把 Nuxt.js 專案 build 成 Docker Image
  7. 三、將 Docker Image 發佈到 dockerhub 上面

每次聚會朋友都在聊用 Docker 來 deploy 有多潮,感覺再不研究就要落伍了;這篇文章會分享我將過去的 Nuxt 專案成功 Build 成 Docker Image 並 push 到 dockerhub 的步驟;整體操作流程個人感覺非常簡單,大家不要被新的技術嚇到了,通常新技術的門檻比想像的更低一點。

在 Mac 將 Nuxt.js 專案 Build 成 Docker Image 發佈到 dockerhub(圖 1)

一、事先準備
 ➤ 創建 Nuxt.js 專案
 ➤ 下載 & 安裝 Docker
二、在 local 把 Nuxt.js 專案 Build 成 Docker Image
 ➤ 撰寫 dockerfile & .dockerignore
 ➤ 把 Nuxt.js 專案 build 成 Docker Image
三、將 Docker Image 發佈到 dockerhub 上面

一、事先準備

創建 Nuxt.js 專案

如果你已經有 Nuxt.js 的專案可以跳過下面的操作流程

STEP 1:創建一個 Nuxt.js 專案

$ yarn create nuxt-app nuxtjs-tutorial

在創建過程中會問你一些問題,你可以參考筆者的選擇:

創建 Nuxt.js 專案(圖 2)

STEP 2:讓 Nuxt.js 專案跑起來

$ cd nuxtjs-tutorial 
$ yarn dev
看到這樣的狀況就是跑起來成功嚕
看到這樣的狀況就是跑起來成功嚕
開啟 http://localhost:3000/ 可以順利看到畫面了喔!
開啟 http://localhost:3000/ 可以順利看到畫面了喔!

下載 & 安裝 Docker

STEP 1:下載 Docker

前往官網下載 Docker 安裝檔

安裝過程就是狂按下一步,就不在多做介紹,下載後要把 App 打開依照步驟執行才算是完成安裝喔!

下載 & 安裝 Docker(圖 5)

STEP 2:註冊 Docker

在官網註冊 docker 帳號

下載 & 安裝 Docker(圖 6)

STEP 3:在 local 端登入 docker

$ docker login

輸入剛剛註冊的帳號密碼

下載 & 安裝 Docker(圖 7)

二、在 local 把 Nuxt.js 專案 Build 成 docker image

撰寫 dockerfile & .dockerignore

STEP 1:先用指令建立這兩個檔案

$ touch dockerfile
$ touch .dockerignore

STEP 2:撰寫 dockerfile

# node 運行環境
FROM node:12.19.0

# 存放image的目錄
RUN mkdir -p /app
COPY . /app
WORKDIR /app

# 如果需要相關的環境變數請自行調整路徑
#COPY ./env/.prod-env /app/env/.prod-env

# 對外的port
ENV HOST 0.0.0.0 
EXPOSE 3000

# 安裝套件並build專案
RUN yarn
RUN yarn build

# 執行專案
CMD [ "yarn", "start" ]

原始碼:dockerfile(GitHub Gist)

STEP 2:撰寫 .dockerignore

npm-debug.log
node_modules

原始碼:.dockerignore(GitHub Gist)

把 Nuxt.js 專案 build 成 Docker Image

STEP 1:Build Docker Image

在專案目錄下輸入指令後耐心等待打包,docker_example 是這個 image 的名字

docker build -t docker_example .

把 Nuxt.js 專案 build 成 Docker Image(圖 8)

STEP 2:Run Docker Image

輸入指令確認 image 是否成功

docker run -it — rm -p 80:3000 docker_example

特別注意『80 是對外 port,3000 是 container 的 port』,docker_example 就是剛剛建立的 image 名稱

把 Nuxt.js 專案 build 成 Docker Image(圖 9)

上圖 172.xx.xx.x:3000 的網址點開來是沒有畫面的,因為我們已經透過指令改變對外 port 到 80 了,在網址列上輸入 http://localhost/ 就能成功看到供果嚕~

把 Nuxt.js 專案 build 成 Docker Image(圖 10)

三、將 Docker Image 發佈到 dockerhub 上面

STEP 1:給剛剛建立的 Image 一個 tag,username 是你 Doacker 的帳戶,xxximage是你希望這個 Image 在 dockerhub 上呈現的名字

docker tag docker_example username/xxximage

STEP 2:列出目前存在的 Images

docker images

三、將 Docker Image 發佈到 dockerhub 上面(圖 11)

STEP 3:把這個 Image 丟到 dockerhub 的 repositories

這個 push 的過程會根據你產生 Image 的大小決定,通常要等一段時間

docker push username/xxximage

STEP 4:在自己的 Docker 帳戶上看到剛剛上傳的 Docker Image

三、將 Docker Image 發佈到 dockerhub 上面(圖 12)

之後要部署這個 Docker Image 到其他 Server 就只需要輸入下面指令就能獲得嚕~

docker pull username/xxximage

希望這篇文章有幫助到使用 Mac 開發 Nuxt.js 專案的朋友們~

Talk

留言討論

留言載入中…