### Build Image
FROM golang:1.17-buster AS builder
LABEL maintainer="Christian Pointner <equinox@helsinki.at>"

RUN set -e \
  && apt-get update -q \
  && apt-get install -y -q --no-install-recommends make \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY Makefile go.mod go.sum /usr/src/
COPY api /usr/src/api
COPY auth /usr/src/auth
COPY cmd /usr/src/cmd
COPY importer /usr/src/importer
COPY store /usr/src/store
COPY ui /usr/src/ui

WORKDIR /usr/src
RUN make

### APP Image
FROM debian:buster
LABEL maintainer="Christian Pointner <equinox@helsinki.at>"

RUN set -e \
  && apt-get update -q \
  && apt-get install -y -q --no-install-recommends ffmpeg ca-certificates netcat \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN set -e \
  && mkdir -p /etc/aura /srv/audio /srv/import-temp \
  && adduser --home /srv --no-create-home --system --uid 1000 --group app \
  && chown 1000:1000 /srv/audio /srv/import-temp

COPY contrib/for-docker.yaml /etc/aura/tank.yaml
COPY --from=builder /usr/src/tank /usr/local/bin/tank

VOLUME /srv/audio
VOLUME /srv/import-temp
ENV TANK_STORE_PATH=/srv/audio TANK_IMPORTER_TEMP_PATH=/srv/import-temp
ENV TANK_DB_HOST=172.17.0.1 TANK_DB_USERNAME=tank TANK_DB_PASSWORD=aura TANK_DB_NAME=tank
EXPOSE 8040/tcp

USER app
CMD ["/usr/local/bin/tank", "run", "--listen", ":8040"]