mirror of
https://github.com/lukaszraczylo/gohoarder.git
synced 2026-06-04 22:49:24 +00:00
38 lines
1.0 KiB
Docker
38 lines
1.0 KiB
Docker
# Migration Engine - Database Migration Tool
|
|
# This Dockerfile expects a PRE-BUILT binary from GoReleaser (no compilation)
|
|
# GoReleaser injects the platform-specific binary automatically
|
|
|
|
FROM --platform=$TARGETPLATFORM alpine:latest
|
|
|
|
ARG TARGETARCH
|
|
|
|
# Install runtime dependencies (including CGO/SQLite dependencies)
|
|
RUN apk add --no-cache \
|
|
ca-certificates \
|
|
postgresql-client \
|
|
mysql-client \
|
|
busybox-extras \
|
|
sqlite-libs \
|
|
musl \
|
|
&& update-ca-certificates
|
|
|
|
# Create non-root user
|
|
RUN addgroup -g 1000 gohoarder && \
|
|
adduser -D -u 1000 -G gohoarder gohoarder
|
|
|
|
# Copy pre-built binary from GoReleaser
|
|
# GoReleaser will automatically inject the correct binary for the target platform
|
|
# In split/merge mode, binaries are in linux/${TARGETARCH}/ subdirectories
|
|
COPY linux/${TARGETARCH}/migrate /usr/local/bin/migrate
|
|
RUN chmod +x /usr/local/bin/migrate
|
|
|
|
# Copy migration SQL files
|
|
COPY migrations /migrations
|
|
|
|
WORKDIR /app
|
|
USER gohoarder
|
|
|
|
# Run migrations
|
|
ENTRYPOINT ["/usr/local/bin/migrate"]
|
|
CMD ["--action=migrate"]
|