故障现象:
bash
前端同事一直向我反映使用alpine-node系列的镜像,安装包报错
故障原因
bash
在CI文件上配置的代理没有生效,导致流水线无法在gitlab-runner上拉取https://registry.npmmirror.com仓库软件包
后来查资料提示说,在gitlab的CI文件的stage模块里面配置代理只对当前的shell命令有效,换句话说就是每行命令之后都得重新
配置下代理才能生效
解决问题方案:
1、在镜像中设置代理变量
bash
root@runner1:~/docker-alpine# cat Dockerfile
FROM node:16-alpine
# 配置代理
ENV http_proxy "http://$IP:2080"
ENV HTTP_PROXY "http://$IP:2080"
ENV https_proxy "http://$IP:2080"
ENV HTTPS_PROXY "http://$IP:2080"
#构建镜像
root@runner1:~/docker-alpine# docker build -t node-16-alpine:v1 .
#修改CI文件里面流水线作业的父镜像
build-npm-test:
image: node-16-alpine:v1 #修改
stage: build_test
variables:
GIT_SUBMODULE_STRATEGY: recursive
2、在CI文件里面设置全局变量
bash
variables:
HTTP_PROXY: http://$IP:2080
HTTPS_PROXY: http://$IP:2080
这个问题算是解决了,实战是检验能力的最好方法,多练、多想、多做,不要怕出错,干就完事了