2020-11-02 20:22:59 +13:00
|
|
|
# development image
|
2021-02-22 11:26:35 -08:00
|
|
|
FROM techknowlogick/xgo:go-1.16.x as dev
|
2019-09-18 22:30:59 +12:00
|
|
|
WORKDIR /src
|
2020-11-02 20:22:59 +13:00
|
|
|
ENV GOCACHE /src/.cache/go-build
|
2015-11-25 10:57:58 -08:00
|
|
|
|
2019-09-18 22:30:59 +12:00
|
|
|
# enable cgo to build sqlite
|
2015-12-01 17:36:23 -08:00
|
|
|
ENV CGO_ENABLED 1
|
2015-11-25 10:57:58 -08:00
|
|
|
|
2018-01-22 20:38:40 -08:00
|
|
|
# install database clients
|
|
|
|
|
RUN apt-get update \
|
2019-09-18 22:30:59 +12:00
|
|
|
&& apt-get install -qq --no-install-recommends \
|
|
|
|
|
curl \
|
|
|
|
|
mysql-client \
|
2018-01-22 20:38:40 -08:00
|
|
|
postgresql-client \
|
|
|
|
|
sqlite3 \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
2019-09-18 22:30:59 +12:00
|
|
|
# golangci-lint
|
2021-04-07 13:51:50 -07:00
|
|
|
RUN curl -fsSL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \
|
|
|
|
|
| sh -s -- -b /usr/local/bin v1.39.0
|
2015-11-25 10:57:58 -08:00
|
|
|
|
2019-09-18 22:30:59 +12:00
|
|
|
# download modules
|
|
|
|
|
COPY go.* ./
|
|
|
|
|
RUN go mod download
|
2015-11-25 10:57:58 -08:00
|
|
|
|
2020-08-11 13:05:55 -07:00
|
|
|
ENTRYPOINT []
|
|
|
|
|
CMD ["/bin/bash"]
|
|
|
|
|
|
2020-11-02 20:22:59 +13:00
|
|
|
# build stage
|
|
|
|
|
FROM dev as build
|
|
|
|
|
COPY . ./
|
|
|
|
|
RUN make build
|
|
|
|
|
|
|
|
|
|
# release stage
|
|
|
|
|
FROM alpine as release
|
2020-08-11 15:36:07 -07:00
|
|
|
RUN apk add --no-cache \
|
2020-11-02 20:22:59 +13:00
|
|
|
mariadb-client \
|
|
|
|
|
postgresql-client \
|
2021-04-03 01:34:22 +04:00
|
|
|
sqlite \
|
|
|
|
|
tzdata
|
2020-08-11 15:36:07 -07:00
|
|
|
COPY --from=build /src/dist/dbmate-linux-amd64 /usr/local/bin/dbmate
|
|
|
|
|
ENTRYPOINT ["dbmate"]
|