docker: adapt the reproducible builds to the new gui folder structure

For simplicity get rid of the vendoring within the image itself. We can
always reintroduce it later should we need it.
This commit is contained in:
Antoine Poinsot 2023-03-30 15:07:40 +02:00
parent 2596e03a9f
commit 1454bd86d5
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304
3 changed files with 19 additions and 27 deletions

View File

@ -11,10 +11,16 @@ docker build . -t liana_cross_win -f contrib/reproducible/docker/windows.Dockerf
docker run --rm -ti \
-v "$TARGET_DIR/gui":/liana/target \
-v "$PWD/contrib/reproducible/docker":/liana/docker \
-v "$PWD/gui/Cargo.toml":/liana/Cargo.toml \
-v "$PWD/gui/Cargo.lock":/liana/Cargo.lock \
-v "$PWD/gui/src":/liana/src \
-v "$PWD/gui/static":/liana/static \
-v "$PWD/gui/ui/Cargo.toml":/liana/ui/Cargo.toml \
-v "$PWD/gui/ui/Cargo.lock":/liana/ui/Cargo.lock \
-v "$PWD/gui/ui/src":/liana/ui/src \
-v "$PWD/gui/ui/static":/liana/ui/static \
liana_cross_win
# Sanity check the given MacOS SDK is the expected one.
if ! $(echo "28d352f8c14a43d9b8a082ac6338dc173cb153f964c6e8fb6ba389e5be528bd0 $(basename $XCODE_PATH)" | sha256sum -c --status); then
echo "No or invalid Xcode SDK found. Need an Xcode_12.2.xip. You can configure the path using \$XCODE_PATH.";
@ -27,9 +33,16 @@ docker run --rm -ti \
-v "$TARGET_DIR":/liana/target \
-v "$TARGET_DIR/gui":/liana/gui/target \
-v "$PWD/contrib/reproducible/docker":/liana/docker \
-v "$PWD/Cargo.toml":/liana/Cargo.toml \
-v "$PWD/Cargo.lock":/liana/Cargo.lock \
-v "$PWD/src":/liana/src \
-v "$PWD/gui/Cargo.toml":/liana/gui/Cargo.toml \
-v "$PWD/gui/Cargo.lock":/liana/gui/Cargo.lock \
-v "$PWD/gui/src":/liana/gui/src \
-v "$PWD/gui/static":/liana/gui/static \
-v "$PWD/gui/ui/Cargo.toml":/liana/gui/ui/Cargo.toml \
-v "$PWD/gui/ui/Cargo.lock":/liana/gui/ui/Cargo.lock \
-v "$PWD/gui/ui/src":/liana/gui/ui/src \
-v "$PWD/gui/ui/static":/liana/gui/ui/static \
-v "$XCODE_PATH":/liana/Xcode_12.2.xip \
liana_cross_mac

View File

@ -33,21 +33,8 @@ RUN curl -O "https://static.rust-lang.org/dist/rust-1.65.0-x86_64-unknown-linux-
tar -xzf rust-1.65.0-x86_64-apple-darwin.tar.gz && \
rm -r *.tar.gz
# Copy the Cargo files for both the daemon and the GUI to vendor the dependencies.
COPY Cargo.toml Cargo.lock /liana/
COPY gui/Cargo.toml gui/Cargo.lock /liana/gui/
# We cache the dependencies sources in the image to avoid re-indexing everything from scratch
# at every run. It was useful when debugging the build, it could be removed eventually if we
# think the tradeoff vs the image size isn't worth it anymore.
RUN /liana/rust-1.65.0-x86_64-unknown-linux-gnu/cargo/bin/cargo vendor && \
cd gui && \
/liana/rust-1.65.0-x86_64-unknown-linux-gnu/cargo/bin/cargo vendor && \
cd ..
# Cargo configuration for using the vendored dependencies during the builds.
COPY contrib/reproducible/docker/cargo_config.toml /liana/.cargo/cargo_config.toml
COPY contrib/reproducible/docker/cargo_config.toml /liana/gui/.cargo/cargo_config.toml
# NOTE: we were previously caching dependencies here (through `cargo vendor`). It's a tradeoff between the image size
# and not needing internet access when running the image to build the software.
# For some reason, we can't just set the RUSTFLAGS environment variable to add `-L` for compiling dependencies.
# This doesn't work: RUSTFLAGS="-L/liana/rust-1.65.0-x86_64-apple-darwin/rust-std-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/"

View File

@ -19,16 +19,8 @@ RUN curl -O "https://static.rust-lang.org/dist/rust-1.65.0-x86_64-unknown-linux-
tar -xzf rust-1.65.0-x86_64-pc-windows-gnu.tar.gz && \
rm -r *.tar.gz
# Copy the Cargo files to vendor the dependencies.
COPY gui/Cargo.toml gui/Cargo.lock /liana/
# We cache the dependencies sources in the image to avoid re-indexing everything from scratch
# at every run. It was useful when debugging the build, it could be removed eventually if we
# think the tradeoff vs the image size wasn't worth it anymore.
RUN /liana/rust-1.65.0-x86_64-unknown-linux-gnu/cargo/bin/cargo vendor
# Cargo configuration for using the vendored dependencies during the build.
COPY contrib/reproducible/docker/cargo_config.toml /liana/.cargo/cargo_config.toml
# NOTE: we were previously caching dependencies here (through `cargo vendor`). It's a tradeoff between the image size
# and not needing internet access when running the image to build the software.
# For some reason, we can't just set the RUSTFLAGS environment variable to add `-L` for compiling dependencies.
# This doesn't work: RUSTFLAGS="-L /liana/rust-1.65.0-x86_64-pc-windows-gnu/rust-std-x86_64-pc-windows-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/ -L /liana/rust-1.65.0-x86_64-unknown-linux-gnu/rust-std-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/"