- Add prod builds (stripped) and prod-upx builds (compressed) for Linux - Add prod builds (stripped) for macOS (UPX not supported) - Add docker/production-slim for slim images using prod-upx binaries - Update build-docker.yml to build slim variants - Update build-macos.yml to sign and notarize all 4 variants - Add BUILDOPTIONS constant to show build flags in version output - Add make release-all target for building both dev and prod locally Linux artifacts: 6 variants (dev, prod, prod-upx for amd64/arm64) macOS artifacts: 4 variants (dev, prod for amd64/arm64) Docker images: 6 variants (dev, prod, prod-slim for amd64/arm64) Co-authored-by: Cursor <cursoragent@cursor.com>
31 lines
1 KiB
Docker
31 lines
1 KiB
Docker
# ===========================================
|
|
# Yao Production
|
|
# docker build \
|
|
# --build-arg VERSION="${VERSION}" \
|
|
# --build-arg ARCH="${ARCH}" \
|
|
# -t yaoapp/yao:${VERSION}-${ARCH} .
|
|
#
|
|
# Build:
|
|
# docker build --platform linux/amd64 --build-arg VERSION=1.0.0 --build-arg ARCH=amd64 -t yaoapp/yao:1.0.0-amd64 .
|
|
# docker build --platform linux/arm64 --build-arg VERSION=1.0.0 --build-arg ARCH=arm64 -t yaoapp/yao:1.0.0-arm64 .
|
|
#
|
|
# Tests:
|
|
# docker run --rm yaoapp/yao:1.0.0-amd64 yao version
|
|
# docker run -d -p 5099:5099 yaoapp/yao:1.0.0-amd64
|
|
#
|
|
# ===========================================
|
|
FROM alpine:latest
|
|
ARG VERSION
|
|
ARG ARCH
|
|
RUN apk --no-cache add curl
|
|
RUN curl -fsSL "https://pub-80136338e60643edbb55c6ca8a689cf8.r2.dev/archives/yao-${VERSION}-linux-${ARCH}-prod" > /usr/local/bin/yao && \
|
|
chmod +x /usr/local/bin/yao && \
|
|
addgroup -S yao && adduser -S -G yao yao && \
|
|
mkdir -p /data/app && \
|
|
chown -R yao:yao /data/app
|
|
|
|
USER yao
|
|
VOLUME /data/app
|
|
WORKDIR /data/app
|
|
EXPOSE 5099
|
|
CMD ["/usr/local/bin/yao", "start"]
|