Open xbt573 opened 5 months ago
thanks! ill try this
works, thanks!
for reference:
FROM alpine:edge AS builder
WORKDIR /tmp/taglib
RUN apk add --no-cache wget
RUN wget "https://github.com/taglib/taglib/releases/download/v2.0.2/taglib-2.0.2.tar.gz"
RUN tar -xzf taglib-2.0.2.tar.gz
WORKDIR /tmp/taglib/taglib-2.0.2
RUN apk add --no-cache build-base cmake zlib-static utfcpp
RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF .
RUN make
RUN make install
WORKDIR /tmp/gonic
RUN apk add --no-cache go
RUN wget "https://github.com/sentriz/gonic/archive/master.tar.gz"
RUN tar -xzf master.tar.gz
WORKDIR /tmp/gonic/gonic-master
RUN apk add --no-cache pkgconf
RUN go mod download
RUN go build -ldflags '-linkmode external -extldflags "-static"' -o /bin/gonic ./cmd/gonic/...
RUN file /bin/gonic
RUN /bin/gonic -h
FROM scratch
WORKDIR /
COPY --from=builder /bin/gonic .
gonic version: v0.16.4 docker tag: latest Actually this is irrelevant to issue, but nevermind.
Building go-sqlite3 statically is very easy, just pass
-ldflags '-linkmode external -extldflags "-static"'
togo build
taglib requires static rebuild and some code changes, but nothing very hard Firstly we need to build taglib as static library: pass
-DBUILD_SHARED_LIBS=OFF
tocmake
(this is confusing, but disabling shared libraries enables static :/) Static zlib is also needed, which is not always bundled with system package (on alpine usezlib-static
) Needed code change is at https://github.com/sentriz/audiotags/blob/master/audiotags.go#L25: addzlib
to pkg-configFinal build command is:
ldd
shows:(whole process was made in
alpine
docker image)I didn't send PR because this is mostly untested (at least i could build it statically)