2个Dockerfile文件范例

一、后端Java项目

bash 复制代码
# 使用jar包制作镜像

# 使用的基础镜像
FROM adoptopenjdk/maven-openjdk8

# 设置时区
RUN rm -f /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone

# 指定工作目录
WORKDIR /app

# 将jar包拷贝
COPY target/*.jar app.jar

# 定义环境变量设置默认值
ENV ACTIVE_PROFILE prod

# 定义服务端口
ENV SERVICE_PORT 9008

# 容器启动后运行的命令 使用 sh -c 让 shell 来解释环境变量。这种方式能够保证 $ACTIVE_PROFILE 在 CMD 执行时被正确替换。
CMD ["sh", "-c", "java -jar /app/app.jar --spring.profiles.active=$ACTIVE_PROFILE --server.port=$SERVICE_PORT"

二、前端Vue项目

bash 复制代码
# 使用 Nginx 作为基础镜像
FROM nginx

ENV TimeZone=Asia/Shanghai

# 将本地的 Vue.js 项目打包拷贝到 Nginx 的默认静态文件目录
COPY dist/ /usr/share/nginx/html/

# 复制 Nginx 配置文件到容器中
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露 Nginx 默认的 HTTP 端口
EXPOSE 1908

搭配nginx.conf使用

bash 复制代码
server {
    listen 1908;
    server_name localhost;

    location / {
        root /usr/share/nginx/html;
        index index.html;
        try_files $uri $uri/ /index.html;
    }

    location /api/ {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header REMOTE-HOST $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://localhost:9008/;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}
相关推荐
无敌糖果4 分钟前
K8S network namespace错误分析
docker·容器·kubernetes
郝开38 分钟前
Docker Compose 模块化多环境配置规范指南:示例搭建Kibana 9.4.2
docker·容器·kibana
虎王物联1 小时前
Docker BuildKit多阶段构建:IoT固件交叉编译流水线实战
运维·物联网·ci/cd·docker·容器·物联网嵌入式
LlmCraft|大模型工程实践1 小时前
14. CI/CD 流水线中集成 Docker:GitHub Actions 自动构建部署
ci/cd·docker·github
10mAh2 小时前
【Docker】磁盘空间被占满怎么清理?——overlay2、容器日志与 Build Cache 排查实战
docker·容器·eureka
xhaxy2 小时前
docker,k8s安装,k8s集群搭建(OS7)
docker·容器·kubernetes
guo_wen_qiang4 小时前
mac中docker desktop服务端开启远程访问
运维·服务器·macos·docker
Sayai6 小时前
Elasticsearch 9 安装验证实战:start-local 一键部署 + Docker 手动安装踩坑指南
大数据·elasticsearch·docker
名字还没想好☜11 小时前
Docker 容器安全加固实战:非 root、只读根文件系统、drop capabilities 与最小攻击面
运维·安全·docker·容器·kubernetes
码--到成功12 小时前
Docker、Kubernetes安装系列 二
docker·容器·kubernetes