feat: 更新编译脚本
This commit is contained in:
@@ -50,6 +50,7 @@ build-amd64:
|
||||
- docker buildx build --platform=linux/amd64 --pull -t "$IMG_URL$IMG_TAG-linux-amd64" . --push
|
||||
- docker rmi "$IMG_URL$IMG_TAG-linux-amd64"
|
||||
|
||||
# 生成多架构制品,并在上传后删除本地文件
|
||||
build-artifact:
|
||||
stage: build
|
||||
needs: [build-amd64, build-arm64]
|
||||
|
||||
+36
-33
@@ -1,28 +1,28 @@
|
||||
# Ver: 1.10 by Endial Fang (endial@126.com)
|
||||
# Ver: 1.11 by Endial Fang (endial@126.com)
|
||||
#
|
||||
|
||||
# 系统默认变量 ====================================================================
|
||||
# 该部分变量为系统根据编译命令默认设置
|
||||
# `TARGETPLATFORM`:构建后的目标平台信息。如 `linux/amd64`,`linux/arm/v7`,`windows/amd64`
|
||||
# `TARGETPLATFORM`:构建后的目标平台信息。如 `linux/amd64`,`linux/arm/v7`,`windows/amd64`
|
||||
# `TARGETOS`:目标平台信息(TARGETPLATFORM)中的操作系统部分,如:`linux`、`windows`
|
||||
# `TARGETARCH`:目标平台信息(TARGETPLATFORM)中的平台架构部分,如:`amd64`、`arm`
|
||||
# `TARGETVARIANT`:目标平台信息(TARGETPLATFORM)中的版本变体部分,如:`v7`
|
||||
# `BUILDPLATFORM`:用于构建的节点平台信息
|
||||
# `BUILDOS`:用于构建的节点平台信息(BUILDPLATFORM)中的操作系统部分
|
||||
# `BUILDARCH`用于构建的节点平台信息(BUILDPLATFORM)中的平台架构部分
|
||||
# `BUILDVARIANT`用于构建的节点平台信息(BUILDPLATFORM)中的版本变体部分
|
||||
# `BUILDARCH`:用于构建的节点平台信息(BUILDPLATFORM)中的平台架构部分
|
||||
# `BUILDVARIANT`:用于构建的节点平台信息(BUILDPLATFORM)中的版本变体部分
|
||||
|
||||
# 可变参数 ========================================================================
|
||||
# 该部分变量,在编译命令中通过 `--build-arg` 传入;如果未设置,则使用下面对应的默认值
|
||||
|
||||
ARG APP_NAME=debian # 设置当前应用名称
|
||||
ARG APP_VER=12 # 设置当前应用版本
|
||||
ARG REGISTRY_URL="docker.colovu.com/" # 设置默认仓库地址,默认为本地仓库;定义时需要包含末尾的`/`
|
||||
ARG APT_SOURCE=aliyun # 设置 apt-get 源:default / ustc / aliyun
|
||||
ARG LOCAL_URL="http://local.colovu.com/dist" # 编译镜像时指定用于加速的本地软件包存储服务器地址
|
||||
ARG APP_NAME=debian
|
||||
ARG APP_VER=12
|
||||
ARG REGISTRY_URL="registry.colovu.com/docker-proxy/"
|
||||
ARG APT_SOURCE=aliyun
|
||||
ARG LOCAL_URL="http://pkgs.colovu.com/dist"
|
||||
|
||||
# 1. 生成镜像 =====================================================================
|
||||
FROM --platform=${TARGETPLATFORM:-linux/amd64} ${REGISTRY_URL}library/debian:${APP_VER}-slim
|
||||
FROM --platform=${TARGETPLATFORM:-linux/amd64} ${REGISTRY_URL}debian:${APP_VER}-slim
|
||||
|
||||
# 声明需要使用的全局可变参数(ARG声明的变量仅编译打包阶段有效)
|
||||
ARG APP_NAME
|
||||
@@ -30,34 +30,37 @@ ARG APP_VER
|
||||
ARG APT_SOURCE
|
||||
|
||||
LABEL \
|
||||
"Version"="v${APP_VER}" \
|
||||
"Description"="Docker image for Debian." \
|
||||
"Github"="https://github.com/colovu/docker-${APP_NAME}" \
|
||||
"Vendor"="Endial Fang (endial@126.com)"
|
||||
"Version"="v${APP_VER}" \
|
||||
"Description"="Docker image for Debian LTS Slim." \
|
||||
"Github"="https://gitee.com/colovu/docker-${APP_NAME}" \
|
||||
"Vendor"="Endial Fang (endial@126.com)"
|
||||
|
||||
# 拷贝默认的通用脚本文件
|
||||
COPY prebuilds /
|
||||
|
||||
ENV LANG=en_US.UTF-8 \
|
||||
LANGUAGE=en_US.UTF-8 \
|
||||
LC_ALL=en_US.UTF-8
|
||||
|
||||
ENV LANG=en_US.UTF-8 \
|
||||
LANGUAGE=en_US.UTF-8 \
|
||||
LC_ALL=en_US.UTF-8
|
||||
|
||||
# 选择软件包源,安装常用软件包,配置locale和时区,并清理缓存
|
||||
RUN set -eux; \
|
||||
# 选择软件包源,以加速后续软件包安装
|
||||
select_source ${APT_SOURCE}; \
|
||||
\
|
||||
# 安装常用的软件包
|
||||
install_pkg gosu dumb-init curl locales; \
|
||||
\
|
||||
# 配置 locale 为 en_US.UTF-8
|
||||
sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen; \
|
||||
locale-gen; \
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_MESSAGES=POSIX; \
|
||||
dpkg-reconfigure -f noninteractive locales; \
|
||||
\
|
||||
# 设置时区为 Shanghai
|
||||
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime; \
|
||||
dpkg-reconfigure -f noninteractive tzdata;
|
||||
# 选择软件包源,以加速后续软件包安装
|
||||
select_source ${APT_SOURCE}; \
|
||||
# 使用 install_pkg 脚本安装软件包
|
||||
/usr/sbin/install_pkg gosu dumb-init curl locales; \
|
||||
\
|
||||
# 配置 locale 为 en_US.UTF-8
|
||||
sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen; \
|
||||
locale-gen; \
|
||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_MESSAGES=POSIX; \
|
||||
dpkg-reconfigure -f noninteractive locales; \
|
||||
\
|
||||
# 设置时区为 Shanghai
|
||||
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime; \
|
||||
dpkg-reconfigure -f noninteractive tzdata; \
|
||||
\
|
||||
# 清理 apt 缓存
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 应用程序的服务命令,必须使用非守护进程方式运行。如果使用变量,则该变量必须在运行环境中存在(ENV可以获取)
|
||||
CMD []
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
# 当前 Docker 镜像的编译脚本
|
||||
|
||||
# 定义镜像名称
|
||||
image_name :=colovu/debian
|
||||
image_name :=debian
|
||||
|
||||
# 定义默认镜像仓库地址
|
||||
REGISTRY_URL :=docker.colovu.com
|
||||
REGISTRY_URL :=registry.colovu.com/docker-proxy/
|
||||
|
||||
# 定义系统默认使用的源服务器,包含:default / ustc / aliyun
|
||||
APT_SOURCE :=aliyun
|
||||
@@ -23,9 +23,9 @@ build-arg+=--build-arg APT_SOURCE=$(APT_SOURCE)
|
||||
|
||||
# 设置本地下载服务器路径,加速调试时的本地编译速度
|
||||
local_ip:=`echo "en0 eth0" | xargs -n1 ip addr show 2>/dev/null | grep inet | grep -v 127.0.0.1 | grep -v inet6 | tr "/" " " | awk '{print $$2}'`
|
||||
build-arg+=--build-arg LOCAL_URL=http://local.colovu.com/dist
|
||||
build-arg+=--build-arg LOCAL_URL=http://pkgs.colovu.com/dist
|
||||
|
||||
.PHONY: build clean clearclean upgrade
|
||||
.PHONY: build clean clearclean upgrade push
|
||||
|
||||
build:
|
||||
@echo "Build $(image_name):$(image_tag)"
|
||||
@@ -50,3 +50,18 @@ upgrade:
|
||||
@echo "Upgrade all images..."
|
||||
@docker images | grep 'colovu' | grep -v '<none>' | grep -v "latest-" | awk '{print $$1":"$$2}' | sort -u | xargs -L 1 docker pull
|
||||
|
||||
# 推送镜像至华为云 SWR 的 colovu 空间及 registry.colovu.com 的默认空间
|
||||
push:
|
||||
@echo "Push $(image_name):$(image_tag) to Huawei Cloud SWR colovu space"
|
||||
@docker tag $(image_name):$(image_tag) swr.cn-north-4.myhuaweicloud.com/colovu/$(image_name):$(image_tag)
|
||||
@docker push swr.cn-north-4.myhuaweicloud.com/colovu/$(image_name):$(image_tag)
|
||||
@echo "Push $(image_name):$(image_tag) to registry.colovu.com"
|
||||
@docker tag $(image_name):$(image_tag) registry.colovu.com/$(image_name):$(image_tag)
|
||||
@docker push registry.colovu.com/$(image_name):$(image_tag)
|
||||
@echo "Push $(image_name):latest to Huawei Cloud SWR colovu space"
|
||||
@docker tag $(image_name):latest swr.cn-north-4.myhuaweicloud.com/colovu/$(image_name):latest
|
||||
@docker push swr.cn-north-4.myhuaweicloud.com/colovu/$(image_name):latest
|
||||
@echo "Push $(image_name):latest to registry.colovu.com"
|
||||
@docker tag $(image_name):latest registry.colovu.com/$(image_name):latest
|
||||
@docker push registry.colovu.com/$(image_name):latest
|
||||
@echo "Push complete"
|
||||
|
||||
Reference in New Issue
Block a user