腾讯云docker镜像推送

29 阅读1分钟

账号

注册腾讯云平台账号

镜像仓库

console.cloud.tencent.com/tcr/reposit…

创建个人版实例-创建命名空间-创建仓库(可以不创建镜像仓库,docker生成时,命令创建) 代码仓在CNB上,cnb.cool/ 该平台上有云原生构建功能,代码仓需要添加下边文件

# 针对test分支
test: 
  # 触发事件为push事件
  push:
    # 这里是阶段任务示例,可配置任意多个阶段,这里以一个阶段为例
    - name: CI
    - services:
        - docker
      env:
        DOCKER_IMAGE_DOMAIN: ccr.ccs.tencentyun.com
        DOCKER_IMAGE_NAMESPACE: xxx
        DOCKER_IMAGE_NAME: xxx
        DOCKER_IMAGE_VERSION: ${CNB_BRANCH}_${CNB_COMMIT}  # 代码仓在CNB
        DOCKER_FILE_PATH: ./publish/beta/Dockerfile
        DOCKER_USER_NAME: 个人账号
        DOCKER_USER_PASSWORD: 账号对应密码
      stages:
        - name: docker login info show
          script: echo ${DOCKER_IMAGE_DOMAIN} ${DOCKER_USER_NAME}
        - name: docker login
          script: docker login ccr.ccs.tencentyun.com --username=${DOCKER_USER_NAME} --password=${DOCKER_USER_PASSWORD}
        # 镜像构建&推送
        - name: Docker build
          script: docker build -t ${DOCKER_IMAGE_DOMAIN}/${DOCKER_IMAGE_NAMESPACE}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION} -f ${DOCKER_FILE_PATH} .
        - name: Docker push
          script: docker push ${DOCKER_IMAGE_DOMAIN}/${DOCKER_IMAGE_NAMESPACE}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION}

docker登陆镜像平台需要账号名和密码,当时登录这块老是报错无权限,一开始试了个人账号和密码,后来又创建子账号,还是不行,查看登录实例就是需要个人主账号和密码,重置了密码,就可以了。。。。。。

image.png

image.png

Dockerfile文件

# 基础镜像
From node:18

# 创建工作目录
RUN mkdir -p /app/elpis-demo

# 进入工作目录
WORKDIR /app/elpis-demo

# 复制代码内容到工作目录
COPY . /app/elpis-demo

# 新增:清理npm缓存并删除残留文件
# 清理缓存并重置npm状态
RUN npm cache clean --force
RUN rm -rf /root/.npm
RUN rm -rf node_modules package-lock.json

# 然后安装依赖
RUN npm install

# build
RUN npm run build:prod

# 设置环境变量
ENV TimeZone=Asia/beijing

# 暴露端口
EXPOSE 8081

ENTRYPOINT ["npm", "run", "beta"]