#################################################### # GOLANG BUILDER #################################################### FROM golang:1.26.3 AS builder ARG VERSION ARG COMMIT COPY . /go/src/github.com/blacktop/ipsw WORKDIR /go/src/github.com/blacktop/ipsw RUN CGO_ENABLED=1 go build \ -o /bin/ipsw \ -ldflags "-X github.com/blacktop/ipsw/cmd/ipsw/cmd.AppVersion=${VERSION}" \ -ldflags "-X github.com/blacktop/ipsw/cmd/ipsw/cmd.AppBuildCommit=${COMMIT}" \ ./cmd/ipsw #################################################### # APFS-FUSE BUILDER #################################################### FROM ubuntu:26.04 LABEL maintainer="https://github.com/blacktop" ARG DEBIAN_FRONTEND=noninteractive RUN buildDeps='libfuse3-dev bzip2 libbz2-dev libz-dev cmake build-essential git libattr1-dev' \ && apt-get update \ && apt-get install -y $buildDeps fuse3 unzip lzma tzdata xz-utils \ && echo "===> Installing apfs-fuse..." \ && cd /tmp \ && git clone https://github.com/sgan81/apfs-fuse.git \ && cd apfs-fuse \ && git submodule init \ && git submodule update \ && sed -i '/#include /a #include ' ApfsLib/PList.h \ && mkdir build \ && cd build \ && cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. \ && make install \ && echo "===> Clean up unnecessary files..." \ && apt-get purge -y --auto-remove $buildDeps \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" ENV IPSW_IN_DOCKER=1 COPY --from=builder /bin/ipsw /bin/ipsw WORKDIR /data ENTRYPOINT [ "/bin/ipsw" ] CMD [ "--help" ]