1
0
Fork 0
migrate/Dockerfile

41 lines
934 B
Docker
Raw Permalink Normal View History

2021-01-13 15:50:59 +08:00
FROM golang:1.15-alpine as build
2018-09-17 11:04:07 +08:00
2018-09-17 11:59:35 +08:00
# args
2021-01-12 21:50:51 +08:00
ARG version="4.14.1"
2018-09-17 11:53:39 +08:00
ARG databases="cassandra clickhouse cockroachdb crate mongodb mysql neo4j postgres ql redshift shell spanner sqlite3 stub testing"
2018-09-17 11:59:35 +08:00
# dependencies
2018-09-17 11:53:39 +08:00
RUN apk add --no-cache git ca-certificates
2018-09-17 11:04:07 +08:00
2018-09-17 11:59:35 +08:00
# source
2018-11-02 18:56:56 +08:00
RUN git clone https://github.com/golang-migrate/migrate -b "v${version}" /src/migrate
WORKDIR /src/migrate
2018-09-17 11:53:39 +08:00
2018-09-17 11:59:35 +08:00
# dependencies
2018-11-02 18:56:56 +08:00
RUN go get
WORKDIR /src/migrate/cli
2018-09-17 11:59:35 +08:00
# build
ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=amd64
2018-11-02 18:56:56 +08:00
RUN go build -ldflags "-s -w" -tags "${databases}" -o /migrate
2018-09-17 11:04:07 +08:00
FROM scratch
2018-09-17 12:05:18 +08:00
ARG version
2018-09-17 11:53:39 +08:00
# labels
LABEL org.label-schema.vcs-url="https://github.com/productionwentdown/migrate"
LABEL org.label-schema.version=${version}
LABEL org.label-schema.schema-version="1.0"
2018-09-17 11:59:35 +08:00
# copy binary and ca certs
2018-09-17 11:41:25 +08:00
COPY --from=build /migrate /migrate
2018-09-17 11:53:39 +08:00
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
2018-09-17 11:04:07 +08:00
2018-09-17 11:59:35 +08:00
WORKDIR /
2018-09-17 11:41:25 +08:00
ENTRYPOINT ["/migrate"]