มา Deploy Angular | React | Vue บน Docker กัน

TAeng Trirong Pholphimai
Nellika
Published in
3 min readSep 30, 2020

--

เริ่มกันเลย!!!

1. Angular

1.1 สร้าง Project

npm install -g @angular/cli //ลง cli ของ angularng new angular-app //สร้าง project ผ่าน clicd angular-app //เข้า project

1.2 นำ scripts ng build — output-path=dist — source-map=false ไปใส่ไว้ตรง scripts ของ build ของไฟล์ package.json

{  
...
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --output-path=dist",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}
...
}

— output-path=dist คือการกำหนด path ไฟล์ build

1.3 copy ด้านล่างนี้ไปใส่ในไฟล์ nginx.conf

line 2 listen port 80
line 3 เซ็ต server name localhost
line 5 เซ็ต path location /
line 6 เซ็ต root /usr/share/nginx/html เพื่อนำเอาของที่อยู่ข้างในมาแสดงผล

1.4 copy ด้านล่างนี้ไปใส่ในไฟล์ Dockerfile

STAGE 1: build project
line 3 กำหนด path directory /usr/src/app
line 4 COPY package.json
line 5 install package
line 7 build project

STAGE 2: run project
line 11 copy nginx.conf จาก state 1 มาไว้ที่ state 2 ที่ directory /etc/nginx/conf.d/default.conf
line 12 copy dist จาก state 1 มาไว้ที่ state 2 ที่ directory /usr/share/nginx/html
line 14 คำสั่ง run project

โครงสร้าง project ก็จะตามนี้

1.5 docker build

docker build -f Dockerfile -t angular-app:v1 . //build docker image

1.6 docker run

docker run -d -p 3001:80 angular-app:v1 //docker run

เข้าไป http://localhost:3001 จะแสดงผลตามนี้

เป็นอันเสร็จแล้วกับ deploy angular เบื้องต้น

2. React

2.1 สร้าง project

npx create-react-app react-app //สร้าง projectcd react-app //เข้า project

2.2 copy ด้านล่างนี้ไปใส่ในไฟล์ nginx.conf

line 2 listen port 80
line 3 เซ็ต server name localhost
line 5 เซ็ต path location /
line 6 เซ็ต root /usr/share/nginx/html เพื่อนำเอาของที่อยู่ข้างในมาแสดงผล

2.3 copy ด้านล่างนี้ไปใส่ในไฟล์ Dockerfile

STAGE 1: build project
line 3 กำหนด path directory /usr/src/app
line 4 COPY package.json
line 5 install package
line 7 build project

STAGE 2: run project
line 11 copy nginx.conf จาก state 1 มาไว้ที่ state 2 ที่ directory /etc/nginx/conf.d/default.conf
line 12 copy build จาก state 1 มาไว้ที่ state 2 ที่ directory /usr/share/nginx/html
line 14 คำสั่ง run project

โครงสร้าง project ก็จะตามนี้

2.4 docker build

docker build -f Dockerfile -t react-app:v1 . //docker build image

2.5 docker run

docker run -d -p 3002:80 react-app:v1 //docker run

เข้าไป http://localhost:3002 จะแสดงผลตามนี้

เป็นอันเสร็จแล้วกับ deploy react เบื้องต้น

3. Vue

3.1 สร้าง project

npm install -g vue-cli //ลง cli ของ vuevue init webpack vue-app //สร้าง project ผ่าน clicd vue-app  //เข้า project

3.2 copy ด้านล่างนี้ไปใส่ในไฟล์ nginx.conf

line 2 listen port 80
line 3 เซ็ต server name localhost
line 5 เซ็ต path location /
line 6 เซ็ต root /usr/share/nginx/html เพื่อนำเอาของที่อยู่ข้างในมาแสดงผล

3.3 copy ด้านล่างนี้ไปใส่ในไฟล์ Dockerfile

STAGE 1: build project
line 3 กำหนด path directory /usr/src/app
line 4 COPY package.json
line 5 install package
line 7 build project

STAGE 2: run project
line 11 copy nginx.conf จาก state 1 มาไว้ที่ state 2 ที่ directory /etc/nginx/conf.d/default.conf
line 12 copy dist จาก state 1 มาไว้ที่ state 2 ที่ directory /usr/share/nginx/html
line 14 คำสั่ง run project

โครงสร้าง project ก็จะตามนี้

3.4 docker build

docker build -f Dockerfile -t vue-app:v1 . //docker build image

3.5 docker run

docker run -d -p 3003:80 vue-app:v1 //docker run

เข้าไป http://localhost:3003 จะแสดงผลตามนี้

เป็นอันเสร็จแล้วกับ deploy vue เบื้องต้น

--

--