目录
Project
├─ dist # 打包后静态文件目录
├─ Dockerfile # docker打包镜像配置文件
├─ nginx.template # nginx配置模版文件
└─ ...
Dockerfile
无环境变量
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
带环境变量(Nginx代理URL)
FROM nginx:alpine
COPY dist/ /app/dist
COPY nginx.template /etc/nginx/conf.d
EXPOSE 80
WORKDIR /etc/nginx/conf.d
ENTRYPOINT envsubst '$URL' < nginx.template > default.conf && cat default.conf && nginx -g 'daemon off;'
nginx.template
server {
listen 80
server_name localhost
access_log /var/log/nginx/host.access.log main
error_log /var/log/nginx/error.log error
location / {
root /app/dist
index index.html index.htm
try_files $uri $uri/ /index.html
}
error_page 500 502 503 504 /50x.html
location /api/ {
proxy_pass $URL
}
}
打包docker image命令
docker build -t <image-name>:<tag> .
运行服务
Docker run
docker run --name <container-name> -p 80:80 -e URL=<backend-url> smd-web
Docker-compose
version: '3'
networks:
mynetwork:
external: true
services:
backend:
...
...
frontend:
image: <image-name>
ports:
- 80:80
links:
- backend:<alias>
depends_on:
- backend
environment:
- URL=http://<alias>:5000