Allow debug build & remote debugging

This commit is contained in:
Andrew Ferrazzutti 2024-02-02 11:02:18 -05:00
parent 687a90b7b2
commit 6b2a89913c
4 changed files with 24 additions and 4 deletions

View file

@ -4,7 +4,9 @@ RUN apk add --no-cache git ca-certificates build-base su-exec olm-dev
COPY . /build
WORKDIR /build
RUN go build -o /usr/bin/mautrix-whatsapp
ARG DBG=0
RUN /bin/bash -c 'if [[ $DBG -eq 1 ]]; then go install github.com/go-delve/delve/cmd/dlv@latest; else touch /go/bin/dlv; fi'
RUN ./build.sh -o /usr/bin/mautrix-whatsapp
FROM alpine:3.19
@ -16,6 +18,9 @@ RUN apk add --no-cache ffmpeg su-exec ca-certificates olm bash jq yq curl
COPY --from=builder /usr/bin/mautrix-whatsapp /usr/bin/mautrix-whatsapp
COPY --from=builder /build/example-config.yaml /opt/mautrix-whatsapp/example-config.yaml
COPY --from=builder /build/docker-run.sh /docker-run.sh
COPY --from=builder /go/bin/dlv /usr/bin/dlv
VOLUME /data
ARG DBGWAIT=0
ENV DBGWAIT=${DBGWAIT}
CMD ["/docker-run.sh"]

View file

@ -4,7 +4,9 @@ RUN apk add --no-cache git ca-certificates build-base su-exec olm-dev bash jq yq
COPY . /build
WORKDIR /build
RUN go build -o /whatsapp
ARG DBG=0
RUN /bin/bash -c 'if [[ $DBG -eq 1 ]]; then go install github.com/go-delve/delve/cmd/dlv@latest; else touch /go/bin/dlv; fi'
RUN ./build.sh -o /mautrix-whatsapp
# Setup development stack using gow
RUN go install github.com/mitranim/gow@latest

View file

@ -1,2 +1,5 @@
#!/bin/sh
go build -ldflags "-X main.Tag=$(git describe --exact-match --tags 2>/dev/null) -X main.Commit=$(git rev-parse HEAD) -X 'main.BuildTime=`date '+%b %_d %Y, %H:%M:%S'`'" "$@"
if [[ $DBG -eq 1 ]]; then
GO_GCFLAGS='all=-N -l'
fi
go build -gcflags="$GO_GCFLAGS" -ldflags="-X main.Tag=$(git describe --exact-match --tags 2>/dev/null) -X main.Commit=$(git rev-parse HEAD) -X 'main.BuildTime=`date '+%b %_d %Y, %H:%M:%S'`'" "$@"

View file

@ -33,4 +33,14 @@ fi
cd /data
fixperms
exec su-exec $UID:$GID /usr/bin/mautrix-whatsapp
EXE=/usr/bin/mautrix-whatsapp
DLV=/usr/bin/dlv
if [[ -x $DLV ]]; then
if [[ $DBGWAIT -ne 1 ]]; then
NOWAIT=1
fi
EXE="${DLV} exec ${EXE} ${NOWAIT:+--continue --accept-multiclient} --api-version 2 --headless -l :4040"
fi
exec su-exec $UID:$GID $EXE