2022-01-10 12:50:42 +00:00
|
|
|
# FROM python:alpine3.15 as pgsanity
|
|
|
|
# WORKDIR /app
|
|
|
|
# RUN apk add libecpg-dev --no-cache
|
|
|
|
# RUN pip3 install pgsanity
|
|
|
|
# COPY ./db ./db
|
|
|
|
# RUN find -name "*.sql" | xargs pgsanity
|
2022-01-08 12:29:22 +00:00
|
|
|
|
2022-01-10 12:50:42 +00:00
|
|
|
FROM crystallang/crystal:latest-alpine as micrate-deps
|
2022-01-08 12:29:22 +00:00
|
|
|
WORKDIR /app
|
|
|
|
COPY ./micrate/shard.yml ./micrate/shard.lock ./
|
|
|
|
RUN shards install --production
|
|
|
|
|
2022-01-10 12:50:42 +00:00
|
|
|
FROM crystallang/crystal:latest-alpine as micrate-builder
|
2022-01-08 12:29:22 +00:00
|
|
|
ARG BUILD_ENV
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=micrate-deps /app/shard.yml /app/shard.lock ./
|
|
|
|
COPY --from=micrate-deps /app/lib lib/
|
|
|
|
COPY ./micrate/src ./src
|
|
|
|
COPY ./scripts ./scripts
|
|
|
|
RUN . ./scripts/build.sh ${BUILD_ENV}
|
|
|
|
|
2022-01-10 12:50:42 +00:00
|
|
|
FROM crystallang/crystal:latest-alpine as deps
|
2022-01-08 12:29:22 +00:00
|
|
|
WORKDIR /app
|
|
|
|
RUN apk add curl --no-cache
|
|
|
|
COPY ./shard.yml ./shard.lock ./
|
|
|
|
RUN shards install
|
|
|
|
|
2022-01-10 12:50:42 +00:00
|
|
|
FROM crystallang/crystal:latest-alpine as builder
|
2022-01-08 12:29:22 +00:00
|
|
|
ARG BUILD_ENV
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=deps /app/shard.yml /app/shard.lock ./
|
|
|
|
COPY --from=deps /app/lib ./lib
|
|
|
|
COPY --from=deps /app/bin ./bin
|
|
|
|
COPY ./src ./src
|
|
|
|
RUN if [ ${BUILD_ENV} = "development" ]; then ./bin/ameba ./src; fi
|
|
|
|
COPY ./scripts ./scripts
|
|
|
|
RUN . ./scripts/build.sh ${BUILD_ENV}
|
|
|
|
|
|
|
|
FROM scratch as runner
|
|
|
|
COPY --from=micrate-builder /app/bin/micrate .
|
|
|
|
COPY --from=builder /app/bin/mw .
|
2022-01-10 12:50:42 +00:00
|
|
|
# COPY --from=pgsanity /app/db ./db
|
|
|
|
COPY ./db ./db
|
2022-01-08 12:29:22 +00:00
|
|
|
EXPOSE 8080
|
|
|
|
CMD [ "/mw" ]
|