#################################################### # GOLANG BUILDER #################################################### FROM golang:1.26.4 AS builder ARG VERSION COPY . /go/src/github.com/blacktop/ipsw WORKDIR /go/src/github.com/blacktop/ipsw RUN CGO_ENABLED=1 go build \ -o /bin/ipswd \ -ldflags "-X github.com/blacktop/ipsw/api/types.BuildVersion=${VERSION}" \ -ldflags "-X github.com/blacktop/ipsw/api/types.BuildTime=$(date -u +%Y%m%d)" \ ./cmd/ipswd #################################################### # 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/ipswd /bin/ipswd COPY config.example.yml /root/.config/ipsw/config.yml WORKDIR /data EXPOSE 3993 ENTRYPOINT [ "/bin/ipswd" ] CMD [ "--help" ]