Update Docker images and build pipeline to use slim variants

This commit is contained in:
xiao 2024-12-20 15:07:50 +08:00
parent 6fb41b2423
commit 51474c30a6
2 changed files with 76 additions and 82 deletions

148
.cnb.yml
View File

@ -6,84 +6,84 @@ $:
build: build:
dockerfile: .ide/Dockerfile dockerfile: .ide/Dockerfile
push: push:
- runner: # - runner:
tags: cnb:arch:amd64 # tags: cnb:arch:amd64
services: # services:
- docker # - docker
imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml # imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml
env: # env:
IMAGE_TAG: btpanel/baota:latest-linux-amd64 # IMAGE_TAG: btpanel/baota:slim-linux-amd64
stages: # stages:
- name: docker login # - name: docker login
script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD" # script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD"
- name: docker build # - name: docker build
script: docker build -t ${IMAGE_TAG} . # script: docker build -t ${IMAGE_TAG} .
- name: docker push # - name: docker push
script: docker push ${IMAGE_TAG} # script: docker push ${IMAGE_TAG}
- name: resolve # - name: resolve
type: cnb:resolve # type: cnb:resolve
options: # options:
key: build-amd64 # key: build-amd64
- runner: # - runner:
tags: cnb:arch:arm64:v8 # tags: cnb:arch:arm64:v8
services: # services:
- docker # - docker
imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml # imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml
env: # env:
IMAGE_TAG: btpanel/baota:latest-linux-arm64 # IMAGE_TAG: btpanel/baota:slim-linux-arm64
stages: # stages:
- name: docker login # - name: docker login
script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD" # script: docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWD"
- name: docker build # - name: docker build
script: docker build -t ${IMAGE_TAG} . # script: docker build -t ${IMAGE_TAG} .
- name: docker push # - name: docker push
script: docker push ${IMAGE_TAG} # script: docker push ${IMAGE_TAG}
- name: resolve # - name: resolve
type: cnb:resolve # type: cnb:resolve
options: # options:
key: build-arm64 # key: build-arm64
- services: # - services:
- docker # - docker
imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml # imports: https://cnb.cool/btpanel/secret/-/blob/main/docker.yml
env: # env:
IMAGE_TAG: btpanel/baota:latest # IMAGE_TAG: btpanel/baota:slim
stages: # stages:
- name: await the amd64 # - name: await the amd64
type: cnb:await # type: cnb:await
options: # options:
key: build-amd64 # key: build-amd64
- name: await the arm64 # - name: await the arm64
type: cnb:await # type: cnb:await
options: # options:
key: build-arm64 # key: build-arm64
- name: manifest # - name: manifest
image: cnbcool/manifest # image: cnbcool/manifest
settings: # settings:
username: $DOCKER_USERNAME # username: $DOCKER_USERNAME
password: $DOCKER_PASSWD # password: $DOCKER_PASSWD
target: ${IMAGE_TAG} # target: ${IMAGE_TAG}
template: ${IMAGE_TAG}-OS-ARCH # template: ${IMAGE_TAG}-OS-ARCH
platforms: # platforms:
- linux/amd64 # - linux/amd64
- linux/arm64 # - linux/arm64
- name: clear # - name: clear
image: lumir/remove-dockerhub-tag # image: lumir/remove-dockerhub-tag
args: # args:
- --user # - --user
- $DOCKER_USERNAME # - $DOCKER_USERNAME
- --password # - --password
- $DOCKER_PASSWD # - $DOCKER_PASSWD
- ${IMAGE_TAG}-linux-amd64 # - ${IMAGE_TAG}-linux-amd64
- ${IMAGE_TAG}-linux-arm64 # - ${IMAGE_TAG}-linux-arm64
- runner: - runner:
tags: cnb:arch:amd64 tags: cnb:arch:amd64
services: services:
- docker - docker
env: env:
IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest-linux-amd64 IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:slim-linux-amd64
stages: stages:
- name: docker login - name: docker login
script: docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY} script: docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY}
@ -101,7 +101,7 @@ $:
services: services:
- docker - docker
env: env:
IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest-linux-arm64 IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:slim-linux-arm64
stages: stages:
- name: docker login - name: docker login
script: docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY} script: docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY}
@ -120,7 +120,7 @@ $:
services: services:
- docker - docker
env: env:
IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest IMAGE_TAG: ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:slim
stages: stages:
- name: await the amd64 - name: await the amd64
type: cnb:await type: cnb:await
@ -145,6 +145,6 @@ $:
options: options:
name: ${CNB_REPO_NAME} name: ${CNB_REPO_NAME}
tags: tags:
- latest-linux-amd64 - slim-linux-amd64
- latest-linux-arm64 - slim-linux-arm64
type: docker type: docker

View File

@ -1,17 +1,11 @@
FROM debian:bookworm FROM debian:bookworm-slim
# 切换 Debian 镜像源为腾讯云源,更新包列表并安装依赖 # 切换 Debian 镜像源为腾讯云源,更新包列表并安装依赖
RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list.d/debian.sources \ RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list.d/debian.sources \
&& apt update && apt upgrade -y \ && apt update && apt upgrade -y \
&& apt install -y \ && apt install -y \
locales \ locales \
wget iproute2 openssh-server libgd-dev cmake make gcc g++ autoconf \ wget openssh-server openssh sudo curl dos2unix vim \
libsodium-dev libonig-dev libssh2-1-dev libc-ares-dev libaio-dev sudo curl dos2unix \
build-essential re2c cron bzip2 libzip-dev libc6-dev bison file rcconf flex vim m4 gawk less cpp binutils \
diffutils unzip tar libbz2-dev libncurses5 libncurses5-dev libtool libevent-dev libssl-dev libsasl2-dev \
libltdl-dev zlib1g-dev libglib2.0-0 libglib2.0-dev libkrb5-dev libpq-dev libpq5 gettext libcap-dev \
libc-client2007e-dev psmisc patch git e2fsprogs libxslt1-dev xz-utils libgd3 libwebp-dev libvpx-dev \
libfreetype6-dev libjpeg62-turbo libjpeg62-turbo-dev iptables libudev-dev libldap2-dev \
&& apt clean \ && apt clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*