后端Dockerfile
#base mirror
FROM anapsix/alpine-java:8_server-jre
#create by
MAINTAINER gong<email@sth.com>
#set workdir
WORKDIR /app
#拷贝文件到容器
ADD app.jar /app/app.jar
ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m"
#防止容器中的中文乱码
ENV LANG C.UTF-8
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar" ]
前端Dockerfile
#基础 nginx镜像
FROM nginx:1.13.7
MAINTAINER gong<email@sth.com>
#把刚才生成dist文件夹下的文件copy到nginx下面去
COPY dist/ /usr/share/nginx/html/
#添加我们自己的配置 default.conf 在下面
COPY nginx.conf /etc/nginx/nginx.conf
#添加vim编辑器后期在容器中修改该nginx.conf配置
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list && \
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
RUN apt-get update && apt-get install vim -y
#防止容器中的中文乱码
ENV LANG C.UTF-8
nginx.conf
#nginx进程,一般设置为和cpu核数一样
worker_processes auto;
#进程存放地点
#pid /usr/local/nginx/logs/nginx.pid;
#错误日志存放目录
error_log /usr/local/nginx/logs/error.log crit;
#工作模式及连接数上限
events {
worker_connections 65536; #单个后台worker process进程的最大并发链接数
multi_accept on;
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
}
http {
include mime.types; #文件扩展名与类型映射表
default_type application/octet-stream; #默认文件类型
#开启高效传输模式
sendfile on;
#激活tcp_nopush参数可以允许把httpresponse header和文件的开始放在一个文件里发布,积极的作用是减少网络报文段的数量
tcp_nopush on;
#激活tcp_nodelay,内核会等待将更多的字节组成一个数据包,从而提高I/O性能
tcp_nodelay on;
#隐藏响应header和错误通知中的版本号
server_tokens off;
#连接超时时间,单位是秒
keepalive_timeout 10;
client_header_timeout 10;
client_body_timeout 10;
reset_timedout_connection on;
send_timeout 10;
limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr 100;
#开启gzip压缩功能
gzip on;
gzip_disable "msie6"
gzip_static on;
gzip_proxied any;
#设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,表示不管页面多大都进行压缩。建议设置成大于1K。如果小于1K可能会越压越大。
gzip_min_length 1000;
#压缩比率。用来指定GZIP压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源。
gzip_comp_level 4;
#用来指定压缩的类型,“text/html”类型总是会被压缩
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
open_file_cache max=100000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;
server {
listen 8080;
# 接口服务的IP地址
server_name localhost;
charset utf-8;
access_log off;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}