ng-alain docker 鏡像啓動

ng-alain 工程已經下載到本地,且使用npm run build 打包了,生成一個 dist 目錄,這個目錄就是咱們打包後的前端工程html

上傳所需文件及目錄

將打包鏡像所須要的文件及目錄都上傳,包括:前端

  • _ngnix
  • dist
  • Dockerfile
  • docker-compose.yml - 若是使用k8s 啓動鏡像的話要用到這個yml 文件

生成鏡像 

1. 修改Dockerfile 文件

先看看原始的Dockerfile 文件的內容:node

# STEP 1: Build
FROM node:8-alpine as builder

LABEL authors="cipchk <cipchk@qq.com>"

COPY package.json package-lock.json ./

RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
RUN npm i && mkdir /ng-alain && cp -R ./node_modules ./ng-alain

WORKDIR /ng-alain

COPY . .

RUN npm run build

# STEP 2: Setup
FROM nginx:1.13.5-alpine

COPY --from=builder /ng-alain/_nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /ng-alain/_nginx/ssl/* /etc/nginx/ssl/

RUN rm -rf /usr/share/nginx/html/*

COPY --from=builder /ng-alain/dist /usr/share/nginx/html

CMD [ "nginx", "-g", "daemon off;"]

ng-alain 做者考慮很周全,把在服務器上打包前端工程的過程也寫出來了,不過打包的過程在本身電腦上能夠完成,就不用將整個ng-alain 目錄複製到服務器了,因此只需將上一節列出的內容複製到服務器就行,而後修改Dockerfile 內容,以下:nginx

FROM nginx:1.13.5-alpine

COPY ./_nginx/default.conf /etc/nginx/conf.d/default.conf
COPY ./_nginx/ssl/* /etc/nginx/ssl/

RUN rm -rf /usr/share/nginx/html/*

COPY ./dist /usr/share/nginx/html

CMD [ "nginx", "-g", "daemon off;"]

實際上就是把step 1 的過程刪除了docker

2. 打包鏡像

此時的目錄結構是:npm

[root@nancy ng-alain]# ll
total 16
drwxr-xr-x 3 root root 4096 Dec 10 09:28 dist
-rw-r--r-- 1 root root  150 Nov 22 08:48 docker-compose.yml
-rw-r--r-- 1 root root  607 Dec 10 09:37 Dockerfile
drwxr-xr-x 3 root root 4096 Dec 10 09:30 _nginx
[root@nancy ng-alain]# pwd
/home/hadmin/ng-alain
[root@nancy ng-alain]#

執行命令:json

[root@nancy ng-alain]# docker build -t ng-alain .

查看鏡像:bash

[root@nancy ng-alain]# docker images
REPOSITORY                                  TAG                 IMAGE ID            CREATED             SIZE
ng-alain                                    latest              4f973803079c        41 minutes ago      25.8 MB
docker.io/nginx                             1.13.5-alpine       ea7bef82810a        6 weeks ago         15.51 MB
hub.c.163.com/library/busybox               latest              d20ae45477cb        3 months ago        1.129 MB
[root@nancy ng-alain]#

這樣鏡像就生成了服務器

3. 啓動鏡像

須要讓鏡像在後臺啓動,執行命令:ui

docker run -d -p 80:80 ng-alain

或者

docker run -d -p 80:80 ng-alain nginx -g 'daemon off;'

這樣就能夠訪問了:DEMO

相關文章
相關標籤/搜索