Skip to content

Commit

Permalink
some fixes in dockerfiles
Browse files Browse the repository at this point in the history
  • Loading branch information
mosajjal committed Feb 1, 2023
1 parent 8ffafcf commit 1f6ee5d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 28 deletions.
53 changes: 27 additions & 26 deletions Dockerfile-crossplatform
Original file line number Diff line number Diff line change
Expand Up @@ -13,65 +13,66 @@ COPY . /${PROJECT}
WORKDIR /${PROJECT}

env GOBUILD="go build -ldflags=-s -tags ${GOTAG} -o ${OUTDIR}/${PROJECT}_${GOTAG}"
env BASEDIR="./cmd/dnsmonster"

# Linux
RUN echo "Building Linux binaries"
RUN export GOOS=linux && export CGO_ENABLED=1 && \
export GOARCH=amd64 && CC="zig cc -target x86_64-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ./cmd/dnsmonster && \
export GOARCH=386 && CC="zig cc -target i386-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ./cmd/dnsmonster && \
export GOARCH=arm && CC="zig cc -target arm-${GOOS}-musleabihf" ${GOBUILD}_${GOOS}_${GOARCH}.bin ./cmd/dnsmonster && \
export GOARCH=arm64 && CC="zig cc -target aarch64-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ./cmd/dnsmonster && \
export GOARCH=riscv64 && CC="zig cc -target riscv64-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ./cmd/dnsmonster
export GOARCH=amd64 && CC="zig cc -target x86_64-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=386 && CC="zig cc -target i386-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm && CC="zig cc -target arm-${GOOS}-musleabihf" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm64 && CC="zig cc -target aarch64-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=riscv64 && CC="zig cc -target riscv64-${GOOS}-musl" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}
# MIPS and PPC are pending patches from Zig #10979, #11829

# Windows
RUN echo "Building Windows binaries"
RUN export GOOS=windows && export CGO_ENABLED=1 && \
export GOARCH=amd64 && CC="zig cc -target x86_64-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=386 && CC="zig cc -target i386-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=arm && CC="zig cc -target arm-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=arm64 && CC="zig cc -target aarch64-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=amd64 && CC="zig cc -target x86_64-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=386 && CC="zig cc -target i386-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm && CC="zig cc -target arm-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm64 && CC="zig cc -target aarch64-${GOOS}-gnu" ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

# Darwin
RUN echo "Building Darwin binaries"
RUN export GOOS=darwin && export CGO_ENABLED=0 && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

# FreeBSD
RUN echo "Building FreeBSD binaries"
RUN export GOOS=freebsd && export CGO_ENABLED=0 && \
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=arm && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=386 && ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=386 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

# NetBSD
RUN echo "Building NetBSD binaries"
RUN export GOOS=netbsd && export CGO_ENABLED=0 && \
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=arm && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=386 && ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=386 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

# OpenBSD
RUN echo "Building OpenBSD binaries"
RUN export GOOS=openbsd && export CGO_ENABLED=0 && \
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=arm && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=386 && ${GOBUILD}_${GOOS}_${GOARCH}.bin . && \
export GOARCH=mips64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=arm && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=386 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR} && \
export GOARCH=mips64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

# Android
RUN echo "Building Android binaries"
RUN export GOOS=android && export CGO_ENABLED=0 && \
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=arm64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

# DragonflyBSD
RUN echo "Building Dragonfly binaries"
RUN export GOOS=dragonfly && export CGO_ENABLED=0 && \
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin .
export GOARCH=amd64 && ${GOBUILD}_${GOOS}_${GOARCH}.bin ${BASEDIR}

FROM scratch
COPY --from=0 /tmp/bins/*.bin /
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile-release
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ RUN git clone https://${REPO}.git /opt/dnsmonster --depth 1 \
ENV CGO_ENABLED=1
ENV GOOS=windows
ENV GOARCH=amd64
RUN sh -c 'cd /opt/dnsmonster && go build -o /tmp/dnsmonster-windows-amd64.exe' ./cmd/dmsmonster
RUN cd /opt/dnsmonster \
&& go build -o /tmp/dnsmonster-windows-amd64.exe ./cmd/dnsmonster

WORKDIR /opt/dnsmonster

Expand All @@ -35,7 +36,7 @@ RUN cd /opt/dnsmonster \
&& mv /tmp/dnsmonster_*_amd64.deb /tmp/dnsmonster-latest.deb

# build rpm file and move it to /tmp/dnsmonster-latest.rpm
RUN export LATEST_TAG=`git describe --tags $(git rev-list --tags --max-count=1)` && echo -e '\
RUN export LATEST_TAG=`git describe --tags $(git rev-list --tags --max-count=1) | awk -F- '{print $1}'` && echo -e '\
Name: dnsmonster \n\
Version: '${LATEST_TAG:1}' \n\
Release: 1 \n\
Expand Down

0 comments on commit 1f6ee5d

Please sign in to comment.