Docker 是現代網站開發不可或缺的技術之一
因為工作需要碰一些 React,所以就想說架設一個開發測試用的環境。但是又不想把原生作業系統裝一大堆有的沒的,立馬就想到了 Docker!剛好最近也在練習,小孩子才做選擇,我兩個都一起練習~
設定 Node.js 環境
$ docker pull node:current-alpine
因為我們只是練習 React 而已,所以安裝 alpine 版本就好了
也可以安裝最原始版本:
docker pull node
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node latest c71adfc6ec58 11 days ago 995MB
node current-alpine 41b5b4b810c1 12 days ago 168MB
是不是!容量差超多的吧~
設定 Dockerfile
Dockerfile
FROM node:current-alpine
ADD ./app /app
WORKDIR /app
RUN npm install -g create-react-app
我們預設我們的程式碼放在 app
資料夾底下,所以記得在與 Dockerfile 同一個資料夾底下建立 app
資料夾。
最後是使用 create-react-app
打包與編譯 React,所以就一併設定安裝溜~
設定 docker-compose.yml
docker-compose.yml
version: '3.8'
services:
node:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./app:/app
command: sh -c "cd my-react && npm start"
ports:
- "3000:3000"
stdin_open: true
這邊設定專案名稱為 my-react,可以自行修改成自己要的專案名稱
建立 Docker Image
$ docker-compose build
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_docker_node latest d3692d539777 26 seconds ago 485MB
node latest c71adfc6ec58 11 days ago 995MB
node current-alpine 41b5b4b810c1 12 days ago 168MB
可以看到多出一個剛剛建立的 image my_docker_node
使用 create-react-app 建立 React 專案
$ docker-compose run --rm node sh -c "create-react-app my-react"
會在 app 底下建立 my-react 資料夾,並新增專案所需的檔案們
app/
└── my-react
├── node_modules
├── package.json
├── package-lock.json
├── public
├── README.md
└── src
4 directories, 3 files
一切就緒 Go !
$ docker-compose up
前往 http://localhost:3000,就能夠看到預設的歡迎頁面!
參考資料