FROM alpine
-RUN apk add go fuse bash
-
-RUN go install github.com/anacrolix/godo@v1
-RUN echo "$HOME"
-ENV PATH="/root/go/bin:$PATH"
+RUN apk add go fuse bash rustup git gcc musl-dev g++
+RUN rustup-init -y --profile minimal
+ENV PATH="/root/.cargo/bin:$PATH"
WORKDIR /src
COPY . .
+RUN git clone https://github.com/anacrolix/possum
+
+WORKDIR possum
+
+RUN git submodule update --init --recursive
+RUN --mount=type=cache,target=/root/.cargo/registry \
+ --mount=type=cache,target=/root/.cargo/git \
+ --mount=type=cache,target=/src/possum/target \
+ cargo build
+
+WORKDIR ..
ARG GOCACHE=/root/.cache/go-build
ARG GOMODCACHE=/root/go/pkg/mod
RUN --mount=type=cache,target=$GOCACHE \
--mount=type=cache,target=$GOMODCACHE \
+ CGO_LDFLAGS=possum/target/debug/libpossum.a \
go test -failfast ./...
-# Can't use fuse inside Docker? Asks for modprobe fuse.
+# # Can't use fuse inside Docker? Asks for modprobe fuse.
-# RUN --mount=type=cache,target=$GOCACHE \
-# --mount=type=cache,target=$GOMODCACHE \
-# ./fs/test.sh
+# RUN go install github.com/anacrolix/godo@v1
+# RUN echo "$HOME"
+# ENV PATH="/root/go/bin:$PATH"
+# # RUN --mount=type=cache,target=$GOCACHE \
+# # --mount=type=cache,target=$GOMODCACHE \
+# # ./fs/test.sh