You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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"' to go 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 to cmake (this is confusing, but disabling shared libraries enables static :/)
Static zlib is also needed, which is not always bundled with system package (on alpine use zlib-static)
Needed code change is at https://github.com/sentriz/audiotags/blob/master/audiotags.go#L25: add zlib to pkg-config
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 use
zlib-static
)Needed code change is at https://github.com/sentriz/audiotags/blob/master/audiotags.go#L25: add
zlib
to pkg-configFinal build command is:
go build -ldflags '-linkmode external -extldflags "-static"' -o gonic cmd/gonic/gonic.go
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)
The text was updated successfully, but these errors were encountered: