RAP2重新打包镜像

RAP2重新打包镜像

打包一直失败

上周用官方github的Docker镜像跑通了,这周研发同学想看看能不能接入我们自己的单点登录,需要先用官方Dockerfile走一遍镜像的打包过程,这中间就遇到坑了。

https://github.com/thx/rap2-delos/blob/master/Dockerfile 进行到

RUN npm run build

这一步会出现下面的报错

Google和百度过,都显示说typescript的版本有问题。

解决报错

先查看官方镜像的信息,使用的基础镜像是2年前的

使用node:lts-alpine:latest进行打包后,用失败的镜像起来后看一下node npm版本,如下图:

这个node npm版本看起来可不是2年前的,tsc的版本与”typescript”: “^3.8.3″也差距很大。

换个思路,用node:lts-alpine:latest进行打包但是不运行npm装包操作,手动看一下,发现默认运行npm install typescript安装完成的ts版本是3.9.10,加一个全局-g参数后安装完成后的版本变成了最新的5.5.3,如下图:

安装typescript装包需要指定一下3.9.10版本应该就可以,3.9.10版本tsc编译过程没有问题

知道问题之后,改一下对应的Dockerfile

# BUILDING
FROM rapteam/rap2-delos  AS builder

# base on work of llitfkitfk@gmail.com
LABEL maintainer="chibing.fy@alibaba-inc.com"

WORKDIR /app

# cache dependencies
COPY package.json ./

# 在国内打开下面一行加速
RUN npm config set registry https://registry.npmmirror.com/

# instal dependencies
RUN npm install typescript@3.9.10 -g && \ #主要改这边
    npm install

# build
COPY . ./
RUN npm run build

再进行Docker build后不再报错了

写在最后

暂时解决了Docker image编译的问题,下周处理集成单点登录需求。

看欧洲杯有点气,西班牙过早换下了边路快马,导致赢得这么困难,德国队这浪费机会。。。

这法国队和葡萄牙看了上半场,菜鸡互啄,洗洗睡了…..太墨迹了

留下回复

error: Content is protected !!