docker部署項目真的是爽呀, 快捷方便又帥氣。這篇文章主要是總結vue項目構建鏡像並推送到私有倉庫的,親測有效哦。
一、本地打包vue爲dist
yarn build
或者
npm run build
打包後生成如下目錄
將dist與DockerFile文件上傳到服務器
DockerFile
FROM nginx:1.13.6-alpine
MAINTAINER eebbk
ARG TZ="Asia/Guangzhou"
ENV TZ ${TZ}
RUN apk upgrade --update \
&& apk add bash tzdata \
&& ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo ${TZ} > /etc/timezone \
&& rm -rf /var/cache/apk/*
COPY dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
二、在上傳的目錄下構建本地鏡像
docker build -t 172.28.162.xx:5000/eebbk-content/content-microservice-questions-ui:3.2.0-SNAPSHOT .
三、啓動鏡像
docker run -d -p 82:80 -v /root/content-microservice-questions/nginx-single.conf:/etc/nginx/nginx.conf --name content-microservice-questions-ui 172.28.162.xx:5000/eebbk-content/content-microservice-questions-ui:3.2.0-SNAPSHOT
-v /root/content-microservice-questions/nginx-single.conf:/etc/nginx/nginx.conf
標識容器中的nginx配置文件掛載到本地
本地nginx.conf如下:
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
use epoll;
worker_connections 2048;
}
http {
include /etc/nginx/mime.types;
# include /etc/nginx/conf.d/*.conf;
root /usr/share/nginx/html;
index index.html index.htm;
upstream gateway-service {
server 172.28.162.xx:8000 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
location ~* /a(pi|uth) {
proxy_pass http://gateway-service;
}
location / {
}
}
}
啓動成功後如下:
四、推送鏡像到docker私有倉庫
推送之前要先建立tag,tag就是本地鏡像的ID,否則會出現如下錯誤:
創建tag:
docker tag cf6e2471e36f push 172.28.162.xx:5000/eebbk-content/content-microservice-questions-ui:3.2.0-SNAPSH
推送鏡像:
docker push 172.28.162.xx:5000/eebbk-content/content-microservice-questions-ui:3.2.0-SNAPSH
五、從私有倉庫中下載上傳的鏡像
docker pull 172.28.162.xx:5000/eebbk-content/monitor-service:3.2.0-SNAPSHOT