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/;
      }
}
posted @ 2023-11-29 15:09  小舟杂笔  阅读(88)  评论(0)    收藏  举报