All checks were successful
continuous-integration/drone/push Build is passing
- 将Dockerfile中基础镜像地址从git.oceanpay.cc替换为git.domainpay.top - 删除docker-compose-local.yaml文件,移除本地网关服务配置 - 保持时区环境变量和工作目录设置不变
74 lines
2.0 KiB
Docker
74 lines
2.0 KiB
Docker
# Stage 1: Build stage using pre-built base image
|
|
FROM git.domainpay.top/danial/kami-gateway-base:latest AS builder
|
|
|
|
# Set working directory
|
|
WORKDIR /build
|
|
|
|
# Copy application source code
|
|
COPY --chown=appuser:appuser . .
|
|
|
|
# Build the application (dependencies already cached in base image)
|
|
RUN go mod tidy && \
|
|
go build -o main -ldflags="-s -w" main.go
|
|
|
|
# Stage 2: Runtime stage using Alpine Linux
|
|
FROM git.domainpay.top/danial/alpine-base:latest
|
|
|
|
# Set environment variables
|
|
ENV TZ=Asia/Shanghai \
|
|
serverName="默认" \
|
|
gatewayAddr="" \
|
|
portalAddr="" \
|
|
shopAddr="" \
|
|
proxy="" \
|
|
proxyName="qkgo" \
|
|
proxyUrl="https://share.proxy.qg.net/get?key=E4WS5YZV&num=1&area=&isp=0&format=txt&seq=\n&distinct=true" \
|
|
proxyAuthKey="E4WS5YZV" \
|
|
proxyAuthPwd="C474B2794C4E"
|
|
|
|
# Switch to root to perform system operations
|
|
USER root
|
|
|
|
# Install runtime dependencies
|
|
RUN apk update && \
|
|
apk upgrade && \
|
|
apk add --no-cache \
|
|
tzdata \
|
|
curl \
|
|
ca-certificates && \
|
|
# Set timezone
|
|
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
|
echo "Asia/Shanghai" > /etc/timezone && \
|
|
# Clean up
|
|
rm -rf /var/cache/apk/*
|
|
|
|
# Download custom certificates
|
|
RUN wget "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/ca-certificates-20241121-r1.apk" && \
|
|
apk add ./ca-certificates-20241121-r1.apk && \
|
|
rm ca-certificates-20241121-r1.apk && \
|
|
curl -fsSL -o /usr/local/share/ca-certificates/aaa-certificate-services.crt https://www.tbs-x509.com/Comodo_AAA_Certificate_Services.crt && \
|
|
update-ca-certificates
|
|
|
|
# Ensure appuser home directory exists
|
|
RUN mkdir -p /app && chown appuser:appuser /app
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Create application directories
|
|
RUN mkdir -p /app/conf /app/data && \
|
|
chown -R appuser:appuser /app
|
|
|
|
# Copy built application from builder stage
|
|
COPY --from=builder /build/main /app/main
|
|
COPY --from=builder /build/conf/ /app/conf/
|
|
COPY --from=builder /build/data/ /app/data/
|
|
|
|
# Switch to appuser
|
|
USER appuser
|
|
|
|
# Expose port
|
|
EXPOSE 12309
|
|
|
|
# Start the application
|
|
CMD ["./main"] |