diff --git a/Dockerfile b/Dockerfile index 01c8e6e..6caab18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,47 @@ FROM rust:1.33-slim AS rustbuild +WORKDIR /build + +RUN rustup target add x86_64-unknown-linux-musl + +ENV USER root + +ENV CARGO_INSTALL_ROOT /build/bin + +RUN mkdir -p /build/bin + +RUN bash -c "cd /tmp/; cargo new --bin index; cd index; echo 'test_crate_hello_world = \"0.1.2\"' >> Cargo.toml; cargo build; cd /tmp; rm -rf index" + FROM rustbuild AS eventbuild WORKDIR /build -RUN rustup target add x86_64-unknown-linux-musl +RUN cargo new --lib wg-event-gen -COPY wg-event-gen/Cargo.* /build/ +COPY wg-event-gen/Cargo.* /build/wg-event-gen/ -RUN mkdir -p src && echo "fn main() {}" > src/main.rs && cargo build --release --target x86_64-unknown-linux-musl - -COPY wg-event-gen/ /build +WORKDIR /build/wg-event-gen RUN cargo build --target x86_64-unknown-linux-musl -FROM frolvlad/alpine-glibc AS test +COPY wg-event-gen/src/ /build/wg-event-gen/src/ -COPY --from=eventbuild /build/target/x86_64-unknown-linux-musl/debug/wg-event-gen /usr/bin/ +RUN cargo install --debug --path . --target x86_64-unknown-linux-musl -RUN echo "d41d8cd98f00b204e9800998ecf8427e -" > test.md5 && wg-event-gen | md5sum -c test.md5 FROM rustbuild AS boringbuild -WORKDIR /build +RUN cargo new --bin boringtun && touch boringtun/src/lib.rs -RUN rustup target add x86_64-unknown-linux-musl +COPY boringtun/Cargo.* /build/boringtun/ -COPY boringtun/Cargo.* /build/ +WORKDIR /build/boringtun -RUN mkdir -p src && echo "fn main() {}" > src/main.rs && touch src/lib.rs && cargo build --release #--target x86_64-unknown-linux-musl #Ring won't compile https://github.com/briansmith/ring/issues/713 +RUN cargo build --release -COPY boringtun/ /build +COPY boringtun/ build/ -RUN cargo build --release #--target x86_64-unknown-linux-musl +RUN cargo install --path . FROM frolvlad/alpine-glibc @@ -41,9 +50,9 @@ RUN echo http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories ENV WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1 -COPY --from=eventbuild /build/target/x86_64-unknown-linux-musl/debug/wg-event-gen /usr/bin/ +COPY --from=eventbuild /build/wg-event-gen /usr/bin/ -COPY --from=boringbuild /build/target/release/boringtun /usr/bin/ +COPY --from=boringbuild /build/boringtun /usr/bin/ COPY init.sh /init.sh