多阶段构建 解决vue项目和springboot项目部署问题

vue项目构建

# STAGE 1
FROM node:12-alpine AS build
WORKDIR /app
COPY package.json ./
RUN npm config set registry https://registry.npm.taobao.org/
RUN npm install
COPY . /app
RUN npm run build
# STAGE 2
FROM nginx:stable-alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

build.sh

docker build -t myapp .
docker run -p 25698:80 --name myapp myapp

springboot 项目多阶段构建

pom.xml 中指定镜像加速(maven 容器中不好指定)

    <repositories>
    <repository>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>aliyun-plugin</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

dockerfile

FROM maven:3-jdk-8 AS build
WORKDIR /app
COPY . /app
RUN mvn clean install -Dmaven.test.skip=true

FROM  openjdk:8-jre-alpine
WORKDIR /tmp
COPY --from=build /app/target/h5-0.0.1-SNAPSHOT.jar /tmp/h5.jar
EXPOSE 7786
ENTRYPOINT ["java","-jar","-Xms64m","-Xmx128m","h5.jar"]

同样是两阶段构建

运行脚本

docker build -t xx .
docker run -p 34712:7786 -d --name xx xx

扩展点

  1. 可以加上 harbor 作为镜像仓库周转
  2. 构建镜像本身编译会占用系统资源,应该单独放到一台服务器上,但目前服务器资源有限,就采用了这种 轻度jenkins(使用dokcer作为编译环境后大大降低了配置 jenkins 基础环境的成本 ,jenkins 中只用执行docker脚本即可)+docker部署的方式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值