tickstep-aliyunpan
SUCCESS
2m 25s
History Source
SummaryIterations1Transcript3Dockerfile
01Iteration 1
WRITEWriteFile· step #1
0s
Dockerfile936 bytes written
text39 lines · 936 chars
# Use multi-stage build to compile Go project from source and create a minimal runtime image.

FROM golang:1.22-bullseye AS builder

WORKDIR /src

# Cache modules
COPY go.mod go.sum ./
RUN go mod download

# Copy the rest of the source
COPY . .

# Build the binary for linux/amd64 with CGO disabled to create a static binary
ENV CGO_ENABLED=0
RUN GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o /bin/aliyunpan

# Final runtime image
FROM debian:bookworm-slim

WORKDIR /app

# Copy the compiled binary from builder
COPY --from=builder /bin/aliyunpan /usr/local/bin/aliyunpan

# Prepare runtime directories
RUN mkdir -p /home/app/config /home/app/data

# Environment variables
ENV ALIYUNPAN_CONFIG_DIR=/home/app/config
ENV ALIYUNPAN_DOWNLOAD_DIR=/home/app/data
ENV TZ=Asia/Shanghai

# Ensure binary has executable permissions
RUN chmod 755 /usr/local/bin/aliyunpan

# Run aliyunpan by default
ENTRYPOINT ["/usr/local/bin/aliyunpan"]
WRITEWriteFile· step #2
0s
.dockerignore235 bytes written
dockerignore23 lines · 235 chars
# Ignore VCS and build-related folders
.git
.gitignore
node_modules/
build/
out/
vendor/
*.log

# Ignore temporary and editor files
*.tmp
*.tmp~
*.swp
*.bak
*.DS_Store

# Ignore IDE files
*.idea/
*.vscode/

# Ignore binaries
aliyunpan
VERIFYVerifyBuild· step #3
1m 13s
VerifyBuildaccepted
Smoke [PASS]: test -x /usr/local/bin/aliyunpan
Smoke [PASS]: /usr/local/bin/aliyunpan --help | head -n 1
Smoke [PASS]: test -d /home/app/config && test -d /home/app/data