FROM docker.io/golang:1.20-alpine3.18 as builder

ENV VERSION=v0.9.0

RUN apk --no-cache add \
  git \
  gcc \
  olm-dev \
  libc-dev \
  musl-dev

RUN ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so

WORKDIR /build
RUN git clone https://github.com/tulir/mautrix-whatsapp.git
WORKDIR /build/mautrix-whatsapp
RUN git checkout $VERSION

RUN go build -o /build/bin/mautrix-whatsapp

FROM docker.io/thallian/confd-env:3.18-3.1.5.0

RUN addgroup -g 2222 matrix-bridge
RUN adduser -h /var/lib/matrix-bridge -u 2222 -D -G matrix-bridge matrix-bridge

COPY --from=builder /build/bin/mautrix-whatsapp /bin/mautrix-whatsapp

RUN apk --no-cache add \
  ca-certificates \
  libstdc++ \
  olm

WORKDIR /var/lib/matrix-bridge

RUN mkdir /var/lib/matrix-bridge/data

ADD /rootfs /

RUN chown -R matrix-bridge:matrix-bridge /var/lib/matrix-bridge
ENV HOME /var/lib/matrix-bridge

EXPOSE 8080