Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split README file #253

Merged
merged 13 commits into from
Dec 11, 2024
53 changes: 53 additions & 0 deletions Dockerfile_from_scratch
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
################
##### Builder
FROM alpine:3.19.1 AS builder

RUN apk update && apk upgrade && apk add binutils build-base ca-certificates curl file g++ gcc make patch fuse3

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

RUN . ~/.cargo/env && rustup target add x86_64-unknown-linux-musl

RUN . ~/.cargo/env && rustup default nightly && rustup update

# Cache downloaded+built dependencies
#COPY Cargo.toml Cargo.lock /usr/src/rencfs/
#RUN mkdir /usr/src/rencfs/src && \
# echo 'fn main() {}' > /usr/src/rencfs/src/main.rs
#
#RUN . ~/.cargo/env && cd /usr/src/rencfs/ && cargo build --release && \
# rm -Rvf /usr/src/rencfs/src

# Build our actual code
#COPY Cargo.toml Cargo.lock /usr/src/rencfs/
#COPY src /usr/src/rencfs
COPY . /usr/src/rencfs
#COPY examples /usr/src/rencfs/examples
RUN . ~/.cargo/env && \
cd /usr/src/rencfs/ && \
cargo build --target x86_64-unknown-linux-musl --release

#Copy the fusermount3 binary and libraries into a directory
RUN mkdir /fusermount3dep && \
cp $(which fusermount3) /fusermount3dep/ && \
ldd $(which fusermount3) | awk '{ print $3 }' | xargs -I {} cp {} /fusermount3dep/


################
##### Runtime
FROM scratch AS runtime

# Copy fusermount3
COPY --from=builder /fusermount3dep/fusermount3 /usr/bin/

# Copy busybox
COPY --from=builder /bin/ /bin/

# Copy ld-musl (fusermount3 & busybox dep)
COPY --from=builder /fusermount3dep/ld* /lib/

# Copy application binary from builder image
COPY --from=builder /usr/src/rencfs/target/x86_64-unknown-linux-musl/release/rencfs /usr/bin/

# Run the application
CMD ["rencfs", "--help"]
Loading
Loading