Dockerfile模板
Dockerfile用于构建Docker镜像文件,做一些笔记记录
编译成镜像文件(使用当前目录下的Dockerfile文件进行构建):docker build --quiet -t <镜像名称>:<镜像版本> .
Dockerfile模板
- 用于构建Java程序:
#构建基于的基础镜像
FROM openjdk:8
#添加镜像的元数据
LABEL maintainer=zhouqingjiang
#环境变量配置
ENV PARAMS="--server.port=8080 --spring.profiles.active=test --spring.cloud.nacos.config.file-extension=yml"
#执行一些操作
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#复制当前目录下的jar文件(只有一个jar文件,这里因为只有一个直接用模糊匹配了)到根目录下的app.jar文件
COPY ./*.jar /app.jar
#暴露端口
EXPOSE 8080
#容器入口点
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
- 用于构建Nginx程序:
#基础镜像
FROM nginx
#author
MAINTAINER zhouqingjiang
#挂载目录(相当于docker启动的时候-v)
VOLUME /var/web
#创建目录
RUN mkdir -p /var/web
#目录是因为配置文件中有用到,所以这里创建了
RUN mkdir -p /etc/nginx/extra
#指定工作目录
WORKDIR /var/web
#复制当前目录下的自定义配置文件web.conf到Nginx额外配置路径下的web.conf文件(这个是Nginx默认的额外配置目录,放到这哥目录下的配置文件都会被加载到nginx.conf目录中去)
COPY ./web.conf /etc/nginx/conf.d/web.conf
#复制当前目录下的common目录下的所有文件(包含里面的所有层级目录)到Nginx容器/etc/nginx/extra目录下
COPY ./common /etc/nginx/extra
#复制html文件到路径
COPY ./admin_dist /var/web/admin_dist
COPY ./user_dist /var/web/user_dist
#暴露端口
EXPOSE 8877
EXPOSE 8888
配置文件中的server代码如下所示:
server {
listen 8888;
server_name _;
#前端页面目录
root /var/web/user_dist;
location / {
try_files $uri $uri/ /index.html;
}
location ^~ /static/(?!Cesium|css|fonts|img|js|jsonlint|leaflet|media|supermap|swf) {
return 404;
}
location ^~/api/ {
#此处引入了/etc/nginx/extra目录下的某个配置文件
include /etc/nginx/extra/proxy.conf;
proxy_pass http://127.0.0.1:8080/;
}
}
浙公网安备 33010602011771号