ci: add ProxySQL build workflow and Dockerfile
This commit is contained in:
parent
e28c335bdb
commit
fac7864956
29
.github/workflows/build-ci-image-proxysql.yml
vendored
Normal file
29
.github/workflows/build-ci-image-proxysql.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
name: build image proxysql
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'oci/proxysql/Dockerfile'
|
||||||
|
- '.github/workflows/build-ci-image-proxysql.yml'
|
||||||
|
workflow_dispatch:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
env:
|
||||||
|
IMAGE_REPO: "artifact.svc.plus"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
proxysql:
|
||||||
|
name: Build ProxySQL image
|
||||||
|
uses: svc-design/actions/.github/workflows/build-images.yaml@main
|
||||||
|
with:
|
||||||
|
method: 'docker'
|
||||||
|
registry_addr: "ghcr.io" # 推送到 GitHub Container Registry
|
||||||
|
dockerfile_path: 'oci/proxysql' # 你放 Dockerfile 的目录
|
||||||
|
image_name: 'public/base/proxysql' # 镜像仓库路径 (可按你实际改)
|
||||||
|
image_tag: '3.0.2-nojemalloc' # 标签,可以改成 latest 或 matrix
|
||||||
|
secrets:
|
||||||
|
artifactory_sa: ${{ secrets.REPO_USER }}
|
||||||
|
artifactory_pw: ${{ secrets.HELM_REPO_PASSWORD }}
|
||||||
44
oci/proxysql/Dockerfile
Normal file
44
oci/proxysql/Dockerfile
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
|
||||||
|
# ---- build stage ----
|
||||||
|
FROM ubuntu:22.04 AS build
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# 构建依赖
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
build-essential gawk git ca-certificates pkg-config \
|
||||||
|
autoconf automake libtool cmake \
|
||||||
|
libssl-dev zlib1g-dev libaio-dev default-libmysqlclient-dev \
|
||||||
|
libgnutls28-dev libcurl4-openssl-dev \
|
||||||
|
bison flex libncurses5-dev \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
WORKDIR /src
|
||||||
|
|
||||||
|
# 完整 clone,保留 tag(不要 --depth=1)
|
||||||
|
RUN git clone --branch v3.0.2 https://github.com/sysown/proxysql.git proxysql
|
||||||
|
WORKDIR /src/proxysql
|
||||||
|
|
||||||
|
# --- 禁用 jemalloc ---
|
||||||
|
RUN sed -ri 's/^(.*\bjemalloc\b.*:.*)$/\1\n\t@echo "skip building jemalloc"/' deps/Makefile || true \
|
||||||
|
&& sed -ri 's@-I\.\./deps/jemalloc/jemalloc/include/jemalloc@@g' src/Makefile lib/Makefile || true \
|
||||||
|
&& sed -ri 's/\s-ljemalloc(\s|$)/ /g' src/Makefile lib/Makefile || true
|
||||||
|
|
||||||
|
# 构建安装
|
||||||
|
RUN make cleanall || true \
|
||||||
|
&& make -j"$(nproc)" \
|
||||||
|
&& make install
|
||||||
|
|
||||||
|
# ---- runtime stage ----
|
||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
# 避免 jemalloc 被加载
|
||||||
|
ENV LD_PRELOAD=""
|
||||||
|
|
||||||
|
# 只拷贝二进制和配置文件
|
||||||
|
COPY --from=build /usr/local/bin/proxysql /usr/bin/proxysql
|
||||||
|
COPY --from=build /usr/local/etc/proxysql.cnf /etc/proxysql.cnf
|
||||||
|
|
||||||
|
EXPOSE 6032 6033 6080
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/proxysql", "-f", "-c", "/etc/proxysql.cnf"]
|
||||||
Loading…
Reference in New Issue
Block a user