--- tags: Docker 筆記 - 2022 春季 --- ###### tags: `docker`、`vue` # ♨ Day 2 使用 Docker 開發 Vue 要開發 Vue 最少要安裝 NVM、Node、Yarn、Vue CLI 四種工具,對於初學者可能是種負擔,可將這些工具打包成 Docker,只要啟動 Container 後,就可立即開發 Vue。 使用 Docker 打造 Vue 開發環境,不僅解決團隊開發環境不同的問題,亦可保持本地電腦環境乾淨,解決開發者電腦雜亂問題 目標: * 在DOCKER中建立開發VUE的環境,並進行開發 * 在DOCKER中建立開發VUE的環境中,開發後,想要儲存此次之修改 ## 在DOCKER中建立開發VUE的環境,並進行開發 ### Dockerfile 進入某個資料夾下,新增dockerfile檔案(新增一檔案名叫dockerfile,並用記事本修改內容),此資料夾就會對應docekr中的vue資料夾:  內容 ``` FROM node:latest RUN yarn global add @vue/cli ``` 說明: * 使用最新版 Node,且自動安裝最新版 Vue CLI。 ### docker-compose.yml 於此資料夾下,新增docker-compose.yml檔案 內容 ``` version: "3" services: vue: build: . container_name: MyVue volumes: - .:/vue ports: - 8080:8080 tty: true ``` * build:動態使用目前目錄下的 dockerfile,使用./下的dockerfile,並將其轉成image檔 * container_name:設定 container 名稱 * volumes:將 host 目前目錄對應到 container 內的 /vue 目錄,: 左側為 host 目錄,: 右側為 host 目錄 * ports:將 host 的 8080 port 對應到 container 的 8080 port,: 左側為 host port,右側為 container 的 port * tty: true:host 可以使用 shell 連進 container 內 * local端dockerfile檔案所在的資料夾,就會對應docekr中的vue資料夾 ### 建立一個container ``` docker-compose up -d ``` 說明: * 將dockerfile建置成image,並啟動container * 使用 up 啟動 container。 * -d:為 d etach,表示執行完立刻將使用權回到 CLI ### 開啟(執行)container ``` docker exec -it MyVue sh ``` 說明: * 在container MyVue中開啟LINUX 的CLI(Shell) * MyVue為docker-compose.yml中的container_name * docker exec :在运行的容器中执行命令  說明: * #為 Container 內的 Linux 環境。 ### 開始開發  說明: * container下的所有資料夾、檔案 進入我們在container中新增的資料夾vue(此 ==新增資料夾(2)== 就會對應docekr中的vue資料夾) ``` cd vue ``` 並且vue create新的專案 ``` vue create hello-world ``` 完成vue-cli設定後,就可以看到本地的資料夾中出現hello-world的專案了  在container中,我們也可以在vue資料夾中看到hello-world的專案  在container中,進入hello-world資料夾,並執行npm run serve  如此,我們就可以在本地端進行專案的開發、編輯,在container中執行npm run build,npm run serve等需要特定環境(node)的指令了 <br> ## 在DOCKER中建立開發VUE的環境中,開發後,想要儲存此次之修改 ### 那如果修改過後,如何讓夥伴們也一起同步呢??? 方法一: 連同Dockerfile檔案,上傳至github,而夥伴可以從github上git clone或 git pull下來 方法二: 上傳至DockerHub上 那今天就以 ==方法二:上傳DockerHub== 為主,進行介紹: ### 修改過後,進行commit 我們在docker中的vue資料夾外新增01、02兩個檔案, // linux cmd ``` # touch 01 # touch 02 ```  修改過後,先看想要commit的container的container ID: // windows cmd ``` docker ps -a ```  並在windows cmd中進行commit // windows cmd ``` docker commit 859ab450d702 vue-upload-test ``` 說明: ``` docker commit [container ID] [產生的image 名稱] ``` 可以看到新增一個vue-upload-test的image  ### 登入docker // windows cmd ``` docker login ```  ### 在 DockerHub 上新增一個 Repository    ### 上傳至DockerHub 產生一個臨時的image,之後可刪掉: ``` docker tag vue-upload-testdocker aidezl/vue-upload-test ``` 說明: ``` docker tag [欲上傳的image] [使用者名稱/自訂] ``` * 注意: 後者名稱須設定為 ==使用者名稱/自訂==  可看到新增一個image了  將 ==臨時的image== 上傳至DockerHub: ``` docker push aidezl/vue-upload-test ``` 可看到已上傳至DockerHub上了  ## 測試是否成功 檔案pull下來看看,有沒有新增02、01兩檔案(上傳後,要先把臨時的image刪掉): ``` docker pull aidezl/vue-upload-test ``` run image,將image轉成container ``` docker run aidezl/vue-upload-test ``` 可以看到新增一個container了  成功了!!!  參考: * [使用 Docker 打造 Vue 開發環境](https://functional.style/docker/vue/development/) * [[Day 1] 前言 & 介紹Kubernetes 中的 如果對於Docker, Container還不太熟悉的讀者,不妨先看過IThome的專欄 Container技術三部曲 ,也許會對什麼是container更加了解 ](https://ithelp.ithome.com.tw/articles/10192401) * [Docker社群達人教你快速踏出Docker的第一步](https://www.ithome.com.tw/news/91848) * [上一個的實際操作](https://asciinema.org/a/13156)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up