Files
kami_gateway/deploy/Dockerfile
danial 32361013b7
All checks were successful
continuous-integration/drone/push Build is passing
chore(deploy): 更新Docker镜像源并移除本地compose配置
- 将Dockerfile中基础镜像地址从git.oceanpay.cc替换为git.domainpay.top
- 删除docker-compose-local.yaml文件,移除本地网关服务配置
- 保持时区环境变量和工作目录设置不变
2025-12-17 15:45:42 +08:00

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"]