diff --git a/.github/workflows/test-docker-distribution.yml b/.github/workflows/test-docker-distribution.yml index 38c52a67dfc..7209e92a3fa 100644 --- a/.github/workflows/test-docker-distribution.yml +++ b/.github/workflows/test-docker-distribution.yml @@ -14,6 +14,13 @@ on: on it otherwise no binary would be available leading to the failure of this workflow. required: true type: string + embed_cardano_cli: + description: | + Embed Cardano-cli in the Docker image. + Only needed if you want to use cardano-cli chain observer. + required: true + type: boolean + default: false cardano_bin_url: description: The url of the archive of the Cardano binaries required: true @@ -90,6 +97,8 @@ jobs: with: context: ${{ env.CONTEXT }} file: ${{ env.DOCKER_FILE }} - build-args: CARDANO_BIN_URL=${{ inputs.cardano_bin_url }} + build-args: | + EMBED-CARDANO-CLI=${{ inputs.embed_cardano_cli && 1 || 0 }} + CARDANO_BIN_URL=${{ inputs.cardano_bin_url }} push: ${{ inputs.dry_run == false }} tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 9378ecd7845..a4015664646 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3538,7 +3538,7 @@ dependencies = [ [[package]] name = "mithril-aggregator" -version = "0.5.30" +version = "0.5.31" dependencies = [ "anyhow", "async-trait", @@ -3839,7 +3839,7 @@ dependencies = [ [[package]] name = "mithril-signer" -version = "0.2.153" +version = "0.2.154" dependencies = [ "anyhow", "async-trait", diff --git a/docs/runbook/test-docker-distribution/img/run-workflow-form.png b/docs/runbook/test-docker-distribution/img/run-workflow-form.png index 33d02c15b1b..8d255829406 100644 Binary files a/docs/runbook/test-docker-distribution/img/run-workflow-form.png and b/docs/runbook/test-docker-distribution/img/run-workflow-form.png differ diff --git a/mithril-aggregator/Cargo.toml b/mithril-aggregator/Cargo.toml index 0073a3f1cc9..27deab4cc9e 100644 --- a/mithril-aggregator/Cargo.toml +++ b/mithril-aggregator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mithril-aggregator" -version = "0.5.30" +version = "0.5.31" description = "A Mithril Aggregator server" authors = { workspace = true } edition = { workspace = true } diff --git a/mithril-aggregator/Dockerfile b/mithril-aggregator/Dockerfile index d219859a3e8..c9b555dfed0 100644 --- a/mithril-aggregator/Dockerfile +++ b/mithril-aggregator/Dockerfile @@ -13,17 +13,20 @@ WORKDIR /app COPY . . # Build the app using a dummy main in order to cache dependencies -RUN mv /app/mithril-aggregator /app/mithril-aggregator.1 && mkdir -p /app/mithril-aggregator/src +RUN mv /app/mithril-aggregator /app/mithril-aggregator.1 \ + && mkdir -p /app/mithril-aggregator/src \ + && mkdir -p /app/mithril-aggregator/benches COPY mithril-aggregator/Cargo.toml /app/mithril-aggregator/ +COPY mithril-aggregator/benches/* /app/mithril-aggregator/benches/ RUN echo "fn main () {}" > /app/mithril-aggregator/src/main.rs -RUN cargo build --release -p mithril-aggregator --manifest-path /app/mithril-aggregator/Cargo.toml +RUN cargo build --release --bin mithril-aggregator --manifest-path /app/mithril-aggregator/Cargo.toml # Rollback the rest of the files into the container RUN rm -rf /app/mithril-aggregator && mv /app/mithril-aggregator.1 /app/mithril-aggregator COPY ./mithril-aggregator/src/main.rs /app/mithril-aggregator/src/ # Build the binary -RUN cargo build --release -p mithril-aggregator +RUN cargo build --release --bin mithril-aggregator RUN /app/target/release/mithril-aggregator --version ############################### @@ -34,6 +37,7 @@ FROM debian:11-slim # Args ARG CARDANO_NODE_VERSION=8.9.0 ARG CARDANO_BIN_URL=https://github.com/input-output-hk/cardano-node/releases/download/$CARDANO_NODE_VERSION/cardano-node-$CARDANO_NODE_VERSION-linux.tar.gz +ARG EMBED-CARDANO-CLI=0 # Upgrade RUN apt-get update -y && apt-get install -y libssl-dev ca-certificates wget sqlite3 && rm -rf /var/lib/apt/lists/* @@ -48,10 +52,14 @@ COPY --from=rustbuilder /app/target/release/mithril-aggregator /app/bin/mithril- COPY --from=rustbuilder /app/mithril-aggregator/config /app/config # Install cardano-cli -RUN wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL -RUN (tar xzf cardano-bin.tar.gz ./bin/cardano-cli && mv /bin/cardano-cli /app/bin) || (tar xzf cardano-bin.tar.gz ./cardano-cli && mv cardano-cli /app/bin) -RUN /app/bin/cardano-cli --version -RUN rm -f cardano-bin.tar.gz +RUN if [ "$EMBED-CARDANO-CLI" = 1 ] ; then \ + wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL \ + && mkdir -p /app/bin \ + && (tar xzf cardano-bin.tar.gz ./bin/cardano-cli && mv /bin/cardano-cli /app/bin) || (tar xzf cardano-bin.tar.gz ./cardano-cli && mv cardano-cli /app/bin) \ + && /app/bin/cardano-cli --version \ + && rm -f cardano-bin.tar.gz \ + && chmod a+x /app/bin/cardano-cli; \ + fi #Workdir WORKDIR /app/ diff --git a/mithril-aggregator/Dockerfile.ci b/mithril-aggregator/Dockerfile.ci index b1bf00e60d8..505e4707018 100644 --- a/mithril-aggregator/Dockerfile.ci +++ b/mithril-aggregator/Dockerfile.ci @@ -16,10 +16,15 @@ RUN apt-get update -y && apt-get install -y libssl-dev ca-certificates wget && a # Install cardano-cli ARG CARDANO_NODE_VERSION=8.9.0 ARG CARDANO_BIN_URL=https://github.com/input-output-hk/cardano-node/releases/download/$CARDANO_NODE_VERSION/cardano-node-$CARDANO_NODE_VERSION-linux.tar.gz -RUN wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL \ +ARG EMBED-CARDANO-CLI=0 +RUN if [ "$EMBED-CARDANO-CLI" = 1 ] ; then \ + wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL \ + && mkdir -p /app/bin \ && (tar xzf cardano-bin.tar.gz ./bin/cardano-cli && mv /bin/cardano-cli /app/bin) || (tar xzf cardano-bin.tar.gz ./cardano-cli && mv cardano-cli /app/bin) \ && /app/bin/cardano-cli --version \ - && rm -f cardano-bin.tar.gz + && rm -f cardano-bin.tar.gz \ + && chmod a+x /app/bin/cardano-cli; \ + fi # Copy the executable COPY mithril-aggregator/mithril-aggregator /app/bin/mithril-aggregator @@ -29,7 +34,7 @@ COPY mithril-aggregator/config /app/config #Workdir WORKDIR /app/ -RUN chown -R appuser /app/ && chmod a+x /app/bin/mithril-aggregator && chmod a+x /app/bin/cardano-cli +RUN chown -R appuser /app/ && chmod a+x /app/bin/mithril-aggregator # Use an unprivileged user USER appuser diff --git a/mithril-signer/Cargo.toml b/mithril-signer/Cargo.toml index 6792f09ab69..251e0fa3d87 100644 --- a/mithril-signer/Cargo.toml +++ b/mithril-signer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mithril-signer" -version = "0.2.153" +version = "0.2.154" description = "A Mithril Signer" authors = { workspace = true } edition = { workspace = true } diff --git a/mithril-signer/Dockerfile b/mithril-signer/Dockerfile index 376e76b7578..f215c845f67 100644 --- a/mithril-signer/Dockerfile +++ b/mithril-signer/Dockerfile @@ -35,6 +35,7 @@ FROM debian:11-slim # Args ARG CARDANO_NODE_VERSION=8.9.0 ARG CARDANO_BIN_URL=https://github.com/input-output-hk/cardano-node/releases/download/$CARDANO_NODE_VERSION/cardano-node-$CARDANO_NODE_VERSION-linux.tar.gz +ARG EMBED-CARDANO-CLI=0 # Upgrade RUN apt-get update -y && apt-get install -y libssl-dev ca-certificates wget sqlite3 && rm -rf /var/lib/apt/lists/* @@ -49,10 +50,14 @@ COPY --from=rustbuilder /app/target/release/mithril-signer /app/bin/mithril-sign COPY --from=rustbuilder /app/mithril-signer/config /app/config # Install cardano-cli -RUN wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL -RUN (tar xzf cardano-bin.tar.gz ./bin/cardano-cli && mv /bin/cardano-cli /app/bin) || (tar xzf cardano-bin.tar.gz ./cardano-cli && mv cardano-cli /app/bin) -RUN /app/bin/cardano-cli --version -RUN rm -f cardano-bin.tar.gz +RUN if [ "$EMBED-CARDANO-CLI" = 1 ] ; then \ + wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL \ + && mkdir -p /app/bin \ + && (tar xzf cardano-bin.tar.gz ./bin/cardano-cli && mv /bin/cardano-cli /app/bin) || (tar xzf cardano-bin.tar.gz ./cardano-cli && mv cardano-cli /app/bin) \ + && /app/bin/cardano-cli --version \ + && rm -f cardano-bin.tar.gz \ + && chmod a+x /app/bin/cardano-cli; \ + fi #Workdir WORKDIR /app/ diff --git a/mithril-signer/Dockerfile.ci b/mithril-signer/Dockerfile.ci index eb9a63d04d7..71f1d3f6de8 100644 --- a/mithril-signer/Dockerfile.ci +++ b/mithril-signer/Dockerfile.ci @@ -16,10 +16,16 @@ RUN apt-get update -y && apt-get install -y libssl-dev ca-certificates wget && a # Install cardano-cli ARG CARDANO_NODE_VERSION=8.9.0 ARG CARDANO_BIN_URL=https://github.com/input-output-hk/cardano-node/releases/download/$CARDANO_NODE_VERSION/cardano-node-$CARDANO_NODE_VERSION-linux.tar.gz -RUN wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL \ +ARG EMBED-CARDANO-CLI=0 +# Install cardano-cli +RUN if [ "$EMBED-CARDANO-CLI" = 1 ] ; then \ + wget -nv -O cardano-bin.tar.gz $CARDANO_BIN_URL \ + && mkdir -p /app/bin \ && (tar xzf cardano-bin.tar.gz ./bin/cardano-cli && mv /bin/cardano-cli /app/bin) || (tar xzf cardano-bin.tar.gz ./cardano-cli && mv cardano-cli /app/bin) \ && /app/bin/cardano-cli --version \ - && rm -f cardano-bin.tar.gz + && rm -f cardano-bin.tar.gz \ + && chmod a+x /app/bin/cardano-cli; \ + fi # Copy the executable COPY mithril-signer/mithril-signer /app/bin/mithril-signer @@ -29,7 +35,7 @@ COPY mithril-signer/config /app/config # Workdir WORKDIR /app/ -RUN chown -R appuser /app/ && chmod a+x /app/bin/mithril-signer && chmod a+x /app/bin/cardano-cli +RUN chown -R appuser /app/ && chmod a+x /app/bin/mithril-signer # Use an unprivileged user USER appuser