You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
迁移镜像仓库到阿里容器镜像服务分几步:
创建命名空间
在阿里云容器镜像服务实例列表中创建命名空间,免费的可以创建3个。
fs-iot
,fs-cloud
,fs-devops
创建访问凭证
用户名就是阿里账号
设置固定密码:V9rtCnt$f
构建镜像
构建镜像要解决的就是授权问题,不能有交互,自动输入密码。
通过工具实现
apt update
apt install expect
在 Jenkins home 目录下增加脚本 login-ali-repository.sh
:
#! /usr/bin/expect
set timeout 3
spawn docker login registry.cn-hangzhou.aliyuncs.com -u hi50040201@aliyun.com
expect "Password:"
send "V9rtCnt\$f\r"
interact
原来的镜像构建插件不能用
使用脚本构建:
比如:
docker build -t registry.cn-hangzhou.aliyuncs.com/fs-cloud/anxinyun-api:$IMAGE_VERSION /var/jenkins_home/workspace/anxinyun-web.api/
docker push registry.cn-hangzhou.aliyuncs.com/fs-cloud/anxinyun-api:$IMAGE_VERSION
下面构建:
构建成功后到 阿里云 容器镜像服务 仓库中查看:
如何在项目中使用
由于现在镜像仓库设置成私有的,默认是无法拉取的,
创建 secret
kubectl create secret docker-registry <secret-name> -n <命名空间> \
--docker-server=<你的镜像仓库服务器> \
--docker-username=<你的用户名> \
--docker-password=<你的密码> \
--docker-email=<你的邮箱地址>
kubectl create secret docker-registry registry-anxinyun-secret -n anxinyun \
--docker-server='registry.cn-hangzhou.aliyuncs.com' \
--docker-username='hi50040201@aliyun.com' \
--docker-password='V9rtCnt$f'
在yaml 文件中使用secret
kind: Deployment
apiVersion: apps/v1
metadata:
name: api-anxincloud
namespace: anxincloud
labels:
app: api-anxincloud
spec:
replicas: 3
selector:
matchLabels:
app: api-anxincloud
template:
metadata:
labels:
app: api-anxincloud
spec:
containers:
- name: api-anxincloud
image: registry.cn-hangzhou.aliyuncs.com/fs-cloud/anxinyun-web.api:179.21-12-15
command:
- node
- server.js
ports:
- name: http-8080
containerPort: 8080
protocol: TCP
...
...
imagePullSecrets:
- name: registry-anxinyun-secret