From 9269dae4a13d28708467bab47b28530058dc27a0 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:16:25 +0100 Subject: [PATCH 01/32] feat: add initial dockerfile --- servers/su/Dockerfile | 78 ++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 46 deletions(-) diff --git a/servers/su/Dockerfile b/servers/su/Dockerfile index 8b8655dec..a1efae10b 100644 --- a/servers/su/Dockerfile +++ b/servers/su/Dockerfile @@ -1,52 +1,38 @@ -# Stage 1: Build the dynamic binary -FROM rust:1.75.0 as builder - -# Set the working directory in the container -WORKDIR /usr/src/su +# Stage 1: Planner +FROM rust:1.75.0 AS planner +WORKDIR /app +RUN cargo install cargo-chef +COPY . . +RUN cargo chef prepare --recipe-path recipe.json -# Install required dependencies for building +# Stage 2: Cache the build of the dependencies +FROM rust:1.75.0 AS cacher +WORKDIR /app +RUN cargo install cargo-chef RUN apt-get update && apt-get install -y \ llvm-dev \ libclang-dev \ clang \ - librocksdb-dev - -# Copy the manifests -COPY Cargo.toml Cargo.lock ./ - -# This step is to cache your dependencies -RUN mkdir src && \ - echo "fn main() {}" > src/main.rs && \ - cargo build --release && \ - rm -f target/release/deps/su* - -# Now copy the actual source code and build the application -COPY src ./src -COPY migrations ./migrations -RUN cargo build --release - -# The final output binary will be in /usr/src/su/target/release/su - - -# Stage 2: Create the runnable image using the binary -FROM scratch as runner - -# Set the working directory in the container + librocksdb-dev \ + libpq-dev \ + libssl-dev +COPY --from=planner /app/recipe.json recipe.json +RUN ls /lib/ +RUN cargo chef cook --release --recipe-path recipe.json + +# Stage 3: Build binary with pre-built and cached dependencies +FROM rust:1.75.0 AS builder +COPY . /app WORKDIR /app - -# Copy the binary from your local file system to the container -COPY --from=builder /usr/src/su/target/release/su /app/su - -# Copy necessary libraries from the builder -COPY --from=builder /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/ -COPY --from=builder /lib64/ /lib64/ - -# Provide instructions for building the binary -# (This will be displayed when someone runs `docker build`) -LABEL build_instructions="To build just the binary, run the following command: docker build --target builder -t su ." - -# Run the binary - provide args on execution -ENTRYPOINT [ "/app/su" ] - -# Run time command arguments, default is empty -CMD [] +COPY --from=cacher /app/target target +COPY --from=cacher /usr/local/cargo /usr/local/cargo +COPY --from=cacher /lib/x86_64-unknown-linux-gnu/* /lib/x86_64-unknown-linux-gnu +# Set the correct Rust target based on architecture +RUN rustup target add x86_64-unknown-linux-gnu && \ + cargo build --release --target x86_64-unknown-linux-gnu + +# Stage 4: Runner +FROM gcr.io/distroless/cc-debian12 +COPY --from=builder /app/target/release/su / +COPY --from=cacher /lib/x86_64-unknown-linux-gnu/* /lib/x86_64-unknown-linux-gnu +CMD ["./su"] From 1b3314e59748ce391cbb65921508505adb319118 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:30:29 +0100 Subject: [PATCH 02/32] fix: Add arch specific images due to dynamic linking --- servers/su/Dockerfile.arm64 | 40 +++++++++++++++++++++++ servers/su/{Dockerfile => Dockerfile.x86} | 2 ++ 2 files changed, 42 insertions(+) create mode 100644 servers/su/Dockerfile.arm64 rename servers/su/{Dockerfile => Dockerfile.x86} (96%) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 new file mode 100644 index 000000000..4ec1c920b --- /dev/null +++ b/servers/su/Dockerfile.arm64 @@ -0,0 +1,40 @@ +### NOTE: THIS WON'T WORK ON AN X86 DEVICE + +# Stage 1: Planner +FROM rust:1.75.0 AS planner +WORKDIR /app +RUN cargo install cargo-chef +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +# Stage 2: Cache the build of the dependencies +FROM rust:1.75.0 AS cacher +WORKDIR /app +RUN cargo install cargo-chef +RUN apt-get update && apt-get install -y \ + llvm-dev \ + libclang-dev \ + clang \ + librocksdb-dev \ + libpq-dev \ + libssl-dev +COPY --from=planner /app/recipe.json recipe.json +RUN ls /lib/ +RUN cargo chef cook --release --recipe-path recipe.json + +# Stage 3: Build binary with pre-built and cached dependencies +FROM rust:1.75.0 AS builder +COPY . /app +WORKDIR /app +COPY --from=cacher /app/target target +COPY --from=cacher /usr/local/cargo /usr/local/cargo +COPY --from=cacher /lib/aarch64-unknown-linux-gnu/* /lib/aarch64-unknown-linux-gnu +# Set the correct Rust target based on architecture +RUN rustup target add aarch64-unknown-linux-gnu && \ + cargo build --release --target aarch64-unknown-linux-gnu + +# Stage 4: Runner +FROM gcr.io/distroless/cc-debian12 +COPY --from=builder /app/target/release/su / +COPY --from=cacher /lib/aarch64-unknown-linux-gnu/* /lib/aarch64-unknown-linux-gnu +CMD ["./su"] diff --git a/servers/su/Dockerfile b/servers/su/Dockerfile.x86 similarity index 96% rename from servers/su/Dockerfile rename to servers/su/Dockerfile.x86 index a1efae10b..7c7840602 100644 --- a/servers/su/Dockerfile +++ b/servers/su/Dockerfile.x86 @@ -1,3 +1,5 @@ +### NOTE: THIS WON'T WORK ON AN ARM64 DEVICE + # Stage 1: Planner FROM rust:1.75.0 AS planner WORKDIR /app From 9abd9626fcdce2b24c7c2cd1708109c9180f32bb Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:48:26 +0100 Subject: [PATCH 03/32] fix: Change runner image to ubuntu:22.04 --- servers/su/Dockerfile.x86 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 7c7840602..7281920ce 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -34,7 +34,7 @@ RUN rustup target add x86_64-unknown-linux-gnu && \ cargo build --release --target x86_64-unknown-linux-gnu # Stage 4: Runner -FROM gcr.io/distroless/cc-debian12 +FROM ubuntu:22.04 COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/x86_64-unknown-linux-gnu/* /lib/x86_64-unknown-linux-gnu CMD ["./su"] From bc654ac1665250c208c8a2568e2712f0d79d2b1d Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:10:22 +0100 Subject: [PATCH 04/32] fix: Adjust path for libc deps --- servers/su/Dockerfile.x86 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 7281920ce..6810436aa 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -28,7 +28,7 @@ COPY . /app WORKDIR /app COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo -COPY --from=cacher /lib/x86_64-unknown-linux-gnu/* /lib/x86_64-unknown-linux-gnu +COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu # Set the correct Rust target based on architecture RUN rustup target add x86_64-unknown-linux-gnu && \ cargo build --release --target x86_64-unknown-linux-gnu @@ -36,5 +36,5 @@ RUN rustup target add x86_64-unknown-linux-gnu && \ # Stage 4: Runner FROM ubuntu:22.04 COPY --from=builder /app/target/release/su / -COPY --from=cacher /lib/x86_64-unknown-linux-gnu/* /lib/x86_64-unknown-linux-gnu +COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu CMD ["./su"] From e72dfdcdd16d1f405566f2a36b4c0b1aa8ee17f7 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:11:30 +0100 Subject: [PATCH 05/32] fix: Update arm64 Dockerfile paths for aarch64-linux-gnu --- servers/su/Dockerfile.arm64 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index 4ec1c920b..307484a23 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -28,7 +28,7 @@ COPY . /app WORKDIR /app COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo -COPY --from=cacher /lib/aarch64-unknown-linux-gnu/* /lib/aarch64-unknown-linux-gnu +COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu # Set the correct Rust target based on architecture RUN rustup target add aarch64-unknown-linux-gnu && \ cargo build --release --target aarch64-unknown-linux-gnu @@ -36,5 +36,5 @@ RUN rustup target add aarch64-unknown-linux-gnu && \ # Stage 4: Runner FROM gcr.io/distroless/cc-debian12 COPY --from=builder /app/target/release/su / -COPY --from=cacher /lib/aarch64-unknown-linux-gnu/* /lib/aarch64-unknown-linux-gnu +COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu CMD ["./su"] From 191e043e71396319f81725cc37171aeb162261cd Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:12:58 +0100 Subject: [PATCH 06/32] fix: add missing / to lib paths --- servers/su/Dockerfile.arm64 | 6 +++--- servers/su/Dockerfile.x86 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index 307484a23..9a33719a3 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -28,13 +28,13 @@ COPY . /app WORKDIR /app COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo -COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu +COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ # Set the correct Rust target based on architecture RUN rustup target add aarch64-unknown-linux-gnu && \ - cargo build --release --target aarch64-unknown-linux-gnu + cargo build --release --target aarch64-unknown-linux-gnu/ # Stage 4: Runner FROM gcr.io/distroless/cc-debian12 COPY --from=builder /app/target/release/su / -COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu +COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ CMD ["./su"] diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 6810436aa..4136267de 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -28,13 +28,13 @@ COPY . /app WORKDIR /app COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo -COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu +COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ # Set the correct Rust target based on architecture RUN rustup target add x86_64-unknown-linux-gnu && \ - cargo build --release --target x86_64-unknown-linux-gnu + cargo build --release --target x86_64-unknown-linux-gnu/ # Stage 4: Runner FROM ubuntu:22.04 COPY --from=builder /app/target/release/su / -COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu +COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ CMD ["./su"] From 44079cdc93da1503c718e072f46a72f352c840f4 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:43:28 +0100 Subject: [PATCH 07/32] fix: remove target during build --- servers/su/Dockerfile.arm64 | 3 +-- servers/su/Dockerfile.x86 | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index 9a33719a3..d287906e6 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -30,8 +30,7 @@ COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ # Set the correct Rust target based on architecture -RUN rustup target add aarch64-unknown-linux-gnu && \ - cargo build --release --target aarch64-unknown-linux-gnu/ +RUN cargo build --release # Stage 4: Runner FROM gcr.io/distroless/cc-debian12 diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 4136267de..7563c9a87 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -16,7 +16,7 @@ RUN apt-get update && apt-get install -y \ libclang-dev \ clang \ librocksdb-dev \ - libpq-dev \ + libpq5 \ libssl-dev COPY --from=planner /app/recipe.json recipe.json RUN ls /lib/ @@ -30,8 +30,7 @@ COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ # Set the correct Rust target based on architecture -RUN rustup target add x86_64-unknown-linux-gnu && \ - cargo build --release --target x86_64-unknown-linux-gnu/ +RUN cargo build --release # Stage 4: Runner FROM ubuntu:22.04 From 4ef0c74f703c3ab04db22e57a9ec95cc32098497 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:53:10 +0100 Subject: [PATCH 08/32] fix: libpq5 in stead of libpq-dev --- servers/su/Dockerfile.arm64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index d287906e6..0e3095bcb 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -16,7 +16,7 @@ RUN apt-get update && apt-get install -y \ libclang-dev \ clang \ librocksdb-dev \ - libpq-dev \ + libpq5 \ libssl-dev COPY --from=planner /app/recipe.json recipe.json RUN ls /lib/ From f96d04038bddf7eef3d7161a1cf9cb30521eac42 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 30 Sep 2024 19:27:46 +0100 Subject: [PATCH 09/32] fix: specify platform in dockerfiles --- servers/su/Dockerfile.arm64 | 10 +++++----- servers/su/Dockerfile.x86 | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index 0e3095bcb..09b993d23 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -1,14 +1,14 @@ ### NOTE: THIS WON'T WORK ON AN X86 DEVICE # Stage 1: Planner -FROM rust:1.75.0 AS planner +FROM --platform=linux/arm64 rust:1.75.0 AS planner WORKDIR /app RUN cargo install cargo-chef COPY . . RUN cargo chef prepare --recipe-path recipe.json # Stage 2: Cache the build of the dependencies -FROM rust:1.75.0 AS cacher +FROM --platform=linux/arm64 rust:1.75.0 AS cacher WORKDIR /app RUN cargo install cargo-chef RUN apt-get update && apt-get install -y \ @@ -23,7 +23,7 @@ RUN ls /lib/ RUN cargo chef cook --release --recipe-path recipe.json # Stage 3: Build binary with pre-built and cached dependencies -FROM rust:1.75.0 AS builder +FROM --platform=linux/arm64 rust:1.75.0 AS builder COPY . /app WORKDIR /app COPY --from=cacher /app/target target @@ -33,7 +33,7 @@ COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ RUN cargo build --release # Stage 4: Runner -FROM gcr.io/distroless/cc-debian12 +FROM --platform=linux/arm64 gcr.io/distroless/cc-debian12 COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ -CMD ["./su"] +CMD ["./su su 9000"] \ No newline at end of file diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 7563c9a87..5ad2b813e 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -1,14 +1,14 @@ ### NOTE: THIS WON'T WORK ON AN ARM64 DEVICE # Stage 1: Planner -FROM rust:1.75.0 AS planner +FROM --platform=linux/amd64 rust:1.75.0 AS planner WORKDIR /app RUN cargo install cargo-chef COPY . . RUN cargo chef prepare --recipe-path recipe.json # Stage 2: Cache the build of the dependencies -FROM rust:1.75.0 AS cacher +FROM --platform=linux/amd64 rust:1.75.0 AS cacher WORKDIR /app RUN cargo install cargo-chef RUN apt-get update && apt-get install -y \ @@ -23,7 +23,7 @@ RUN ls /lib/ RUN cargo chef cook --release --recipe-path recipe.json # Stage 3: Build binary with pre-built and cached dependencies -FROM rust:1.75.0 AS builder +FROM --platform=linux/amd64 rust:1.75.0 AS builder COPY . /app WORKDIR /app COPY --from=cacher /app/target target @@ -33,7 +33,7 @@ COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ RUN cargo build --release # Stage 4: Runner -FROM ubuntu:22.04 +FROM --platform=linux/amd64 ubuntu:22.04 COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ -CMD ["./su"] +CMD ["./su su 9000"] From e48ca07f72f3ac73865f9e181a1a544892c5d47c Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:23:49 +0100 Subject: [PATCH 10/32] fix: correct CMD for su image --- servers/su/Dockerfile.arm64 | 2 +- servers/su/Dockerfile.x86 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index 09b993d23..ee28b458c 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -36,4 +36,4 @@ RUN cargo build --release FROM --platform=linux/arm64 gcr.io/distroless/cc-debian12 COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ -CMD ["./su su 9000"] \ No newline at end of file +CMD ["./su", "su", "9000"] \ No newline at end of file diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 5ad2b813e..9370a2da4 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -36,4 +36,4 @@ RUN cargo build --release FROM --platform=linux/amd64 ubuntu:22.04 COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ -CMD ["./su su 9000"] +CMD ["./su", "su", "9000"] From ec8c57fc788a3444254beeab80c44adc33471bda Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:27:58 +0100 Subject: [PATCH 11/32] fix: make sure runner image has openssl and ca-certificates and sleep for 10 seconds at start up --- servers/su/Dockerfile.arm64 | 3 ++- servers/su/Dockerfile.x86 | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/servers/su/Dockerfile.arm64 b/servers/su/Dockerfile.arm64 index ee28b458c..c0cfb195a 100644 --- a/servers/su/Dockerfile.arm64 +++ b/servers/su/Dockerfile.arm64 @@ -34,6 +34,7 @@ RUN cargo build --release # Stage 4: Runner FROM --platform=linux/arm64 gcr.io/distroless/cc-debian12 +RUN apt-get update && apt install ca-certificates openssl -y COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/ -CMD ["./su", "su", "9000"] \ No newline at end of file +CMD ["sh", "-c", "sleep 10 && ./su su 9000"] diff --git a/servers/su/Dockerfile.x86 b/servers/su/Dockerfile.x86 index 9370a2da4..83c886a6a 100644 --- a/servers/su/Dockerfile.x86 +++ b/servers/su/Dockerfile.x86 @@ -17,7 +17,8 @@ RUN apt-get update && apt-get install -y \ clang \ librocksdb-dev \ libpq5 \ - libssl-dev + libssl-dev + COPY --from=planner /app/recipe.json recipe.json RUN ls /lib/ RUN cargo chef cook --release --recipe-path recipe.json @@ -34,6 +35,7 @@ RUN cargo build --release # Stage 4: Runner FROM --platform=linux/amd64 ubuntu:22.04 +RUN apt-get update && apt install ca-certificates openssl -y COPY --from=builder /app/target/release/su / COPY --from=cacher /lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/ -CMD ["./su", "su", "9000"] +CMD ["sh", "-c", "sleep 10 && ./su su 9000"] From 5d1612f94c9812a5877be90d6d23ddb5f4094776 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:46:17 +0100 Subject: [PATCH 12/32] fix: add directories to cu --- servers/cu/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/servers/cu/Dockerfile b/servers/cu/Dockerfile index 5e7c9b6d3..85d58bf61 100644 --- a/servers/cu/Dockerfile +++ b/servers/cu/Dockerfile @@ -6,7 +6,9 @@ COPY ./package.json . COPY ./package-lock.json . COPY ./src ./src -RUN npm install --omit=dev +RUN npm install --omit=dev && \ + mkdir /db/ && \ + mkdir /file-checkpoints/ ENV NODE_ENV=production From dbb17828cb6d7b046092fd3f1c16f909f62c13e8 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Thu, 10 Oct 2024 18:30:31 +0100 Subject: [PATCH 13/32] fix: add prototype (unfiinished) github action --- .github/workflows/devnet-ecr.yml | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/devnet-ecr.yml diff --git a/.github/workflows/devnet-ecr.yml b/.github/workflows/devnet-ecr.yml new file mode 100644 index 000000000..c297e131b --- /dev/null +++ b/.github/workflows/devnet-ecr.yml @@ -0,0 +1,38 @@ +name: Build and Push to ECR + +on: + push: + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Log in to Amazon ECR + id: ecr-login + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_REGION }} + run: | + aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID + aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY + aws configure set region $AWS_REGION + aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin ${{ secrets.ECR_REPOSITORY_URI }} + + - name: Build Docker image + run: | + docker build -t ${{ secrets.ECR_REPOSITORY_URI }}:latest . + + - name: Push Docker image to ECR + run: | + docker push ${{ secrets.ECR_REPOSITORY_URI }}:latest + + - name: Log out of Docker + run: docker logout + + \ No newline at end of file From 222f9a8f655a53f87a15d4df8dae6e87d7b1a0f2 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Thu, 10 Oct 2024 18:30:35 +0100 Subject: [PATCH 14/32] fix: add mu Dockerfile that works in k8s --- servers/mu/Dockerfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/servers/mu/Dockerfile b/servers/mu/Dockerfile index 3f9c8c55b..240c98c2b 100644 --- a/servers/mu/Dockerfile +++ b/servers/mu/Dockerfile @@ -1,4 +1,4 @@ -FROM node:21 +FROM node:22 RUN apt update && apt install -y bash git awscli @@ -7,14 +7,11 @@ WORKDIR /usr/app COPY ./package.json . COPY ./package-lock.json . COPY ./src ./src -COPY ./entrypoint.sh ./entrypoint.sh -RUN chmod +x /usr/app/entrypoint.sh +RUN mkdir /usr/app/mu-data/ RUN npm install --ignore-engines -ENV NODE_ENV=production - EXPOSE 3005 -ENTRYPOINT ["/usr/app/entrypoint.sh"] +CMD ["node", "src/app.js"] From 9958e508442df1f548cf7e3a53853b59c5b355a6 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:02:09 +0100 Subject: [PATCH 15/32] fix: add workflow --- .github/workflows/devnet-ecr-push.yml | 100 ++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 .github/workflows/devnet-ecr-push.yml diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml new file mode 100644 index 000000000..33ee44c2d --- /dev/null +++ b/.github/workflows/devnet-ecr-push.yml @@ -0,0 +1,100 @@ +name: Build and Push ao/server images to ECR when raising a PR + +on: + pull_request: + branches: + - '*' + +jobs: + build-and-push-cu: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Extract shortened commit hash + id: vars + run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + + - name: Log in to Amazon ECR + id: login-devnet-ecr + uses: aws-actions/amazon-ecr-login@v1 + with: + mask-password: true + skip-logout: true + registry-type: private + registry: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} + AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + + - name: Build and push CU Docker image + run: | + docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-cu-$COMMIT_HASH -f servers/cu/Dockerfile servers/cu/ + docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-cu-$COMMIT_HASH + + build-and-push-mu: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Extract shortened commit hash + id: vars + run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + + - name: Log in to Amazon ECR + id: login-devnet-ecr + uses: aws-actions/amazon-ecr-login@v1 + with: + mask-password: true + skip-logout: true + registry-type: private + registry: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} + AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + + - name: Build and push MU Docker image + run: | + docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-mu-$COMMIT_HASH -f servers/mu/Dockerfile servers/mu/ + docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-mu-$COMMIT_HASH + + build-and-push-su: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Extract shortened commit hash + id: vars + run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + + - name: Log in to Amazon ECR + id: login-devnet-ecr + uses: aws-actions/amazon-ecr-login@v1 + with: + mask-password: true + skip-logout: true + registry-type: private + registry: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} + AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + + - name: Build and push SU Docker image + run: | + docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ + docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-su-$COMMIT_HASH From d338769bdd3f01037b2418d78bdcb6141a2a7df9 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:12:37 +0100 Subject: [PATCH 16/32] fix: only trigger on PRs in servers/* --- .github/workflows/devnet-ecr-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 33ee44c2d..eeb6fa056 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -2,8 +2,8 @@ name: Build and Push ao/server images to ECR when raising a PR on: pull_request: - branches: - - '*' + paths: + - 'servers/**' jobs: build-and-push-cu: From 681135bcfd23aa59412f069122852138e2ce4bb4 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:15:21 +0100 Subject: [PATCH 17/32] fix: remove redundant workflow --- .github/workflows/devnet-ecr.yml | 38 -------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 .github/workflows/devnet-ecr.yml diff --git a/.github/workflows/devnet-ecr.yml b/.github/workflows/devnet-ecr.yml deleted file mode 100644 index c297e131b..000000000 --- a/.github/workflows/devnet-ecr.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Build and Push to ECR - -on: - push: - branches: - - main - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Log in to Amazon ECR - id: ecr-login - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: ${{ secrets.AWS_REGION }} - run: | - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY - aws configure set region $AWS_REGION - aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin ${{ secrets.ECR_REPOSITORY_URI }} - - - name: Build Docker image - run: | - docker build -t ${{ secrets.ECR_REPOSITORY_URI }}:latest . - - - name: Push Docker image to ECR - run: | - docker push ${{ secrets.ECR_REPOSITORY_URI }}:latest - - - name: Log out of Docker - run: docker logout - - \ No newline at end of file From abeae9707043addb616422d53b578f4c709e6f18 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:16:42 +0100 Subject: [PATCH 18/32] fix: update workflow name --- .github/workflows/devnet-ecr-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index eeb6fa056..fec13bede 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -1,4 +1,4 @@ -name: Build and Push ao/server images to ECR when raising a PR +name: 🏗️ Build and Push Docker images to devnet ECR on: pull_request: From 62d2326b61880667a5a0f0bf3fc7f383137ad37e Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:30:57 +0100 Subject: [PATCH 19/32] fix: test login once and use outputs --- .github/workflows/devnet-ecr-push.yml | 76 +++++++++++---------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index fec13bede..a191db51d 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -1,4 +1,4 @@ -name: 🏗️ Build and Push Docker images to devnet ECR +name: Build and Push ao/server images to ECR when raising a PR on: pull_request: @@ -6,19 +6,9 @@ on: - 'servers/**' jobs: - build-and-push-cu: + login: runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Extract shortened commit hash - id: vars - run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV - - name: Log in to Amazon ECR id: login-devnet-ecr uses: aws-actions/amazon-ecr-login@v1 @@ -26,18 +16,37 @@ jobs: mask-password: true skip-logout: true registry-type: private - registry: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + build-and-push-cu: + runs-on: ubuntu-latest + env: + REGISTRY: ${{ steps.login-devnet-ecr.outputs.registry }} + REPOSITORY: devnet-ecr + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Extract shortened commit hash + id: vars + run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + - name: Build and push CU Docker image run: | - docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-cu-$COMMIT_HASH -f servers/cu/Dockerfile servers/cu/ - docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-cu-$COMMIT_HASH + docker build -t $REGISTRY/$REPOSITORY:ao-cu-$COMMIT_HASH -f servers/cu/Dockerfile servers/cu/ + docker push $REGISTRY/$REPOSITORY:ao-cu-$COMMIT_HASH build-and-push-mu: + env: + REGISTRY: ${{ steps.login-devnet-ecr.outputs.registry }} + REPOSITORY: devnet-ecr runs-on: ubuntu-latest steps: - name: Checkout code @@ -50,25 +59,15 @@ jobs: id: vars run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV - - name: Log in to Amazon ECR - id: login-devnet-ecr - uses: aws-actions/amazon-ecr-login@v1 - with: - mask-password: true - skip-logout: true - registry-type: private - registry: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} - AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} - - name: Build and push MU Docker image run: | - docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-mu-$COMMIT_HASH -f servers/mu/Dockerfile servers/mu/ - docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-mu-$COMMIT_HASH + docker build -t $REGISTRY/$REPOSITORY:ao-mu-$COMMIT_HASH -f servers/mu/Dockerfile servers/mu/ + docker push $REGISTRY/$REPOSITORY:ao-mu-$COMMIT_HASH build-and-push-su: + env: + REGISTRY: ${{ steps.login-devnet-ecr.outputs.registry }} + REPOSITORY: devnet-ecr runs-on: ubuntu-latest steps: - name: Checkout code @@ -81,20 +80,7 @@ jobs: id: vars run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV - - name: Log in to Amazon ECR - id: login-devnet-ecr - uses: aws-actions/amazon-ecr-login@v1 - with: - mask-password: true - skip-logout: true - registry-type: private - registry: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} - AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} - - name: Build and push SU Docker image run: | - docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ - docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/devnet-ecr:ao-su-$COMMIT_HASH + docker build -t $REGISTRY/$REPOSITORY:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ + docker push $REGISTRY/$REPOSITORY:ao-su-$COMMIT_HASH From 44d75479b0d846f64502d1df965436c7a3b4cc9f Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:32:28 +0100 Subject: [PATCH 20/32] fix: trigger on change to workflow --- .github/workflows/devnet-ecr-push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index a191db51d..821cd1f2d 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -4,6 +4,7 @@ on: pull_request: paths: - 'servers/**' + - '.github/workflows/devnet-ecr-push.yml' jobs: login: From ccb8119f6993c9cf7633c344608475f2dec4bb6c Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:36:32 +0100 Subject: [PATCH 21/32] fix: trigger on all changes --- .github/workflows/devnet-ecr-push.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 821cd1f2d..18f5701c0 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -1,10 +1,9 @@ -name: Build and Push ao/server images to ECR when raising a PR +name: 🏗️ Build and Push Docker images to devnet ECR on: pull_request: - paths: - - 'servers/**' - - '.github/workflows/devnet-ecr-push.yml' + branches: + - '*' jobs: login: From 405f7df02260a3123efb4da51ed6bfc9c4c0ae7a Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:42:21 +0100 Subject: [PATCH 22/32] Revert "fix: remove redundant workflow" This reverts commit 681135bcfd23aa59412f069122852138e2ce4bb4. --- .github/workflows/devnet-ecr.yml | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/devnet-ecr.yml diff --git a/.github/workflows/devnet-ecr.yml b/.github/workflows/devnet-ecr.yml new file mode 100644 index 000000000..c297e131b --- /dev/null +++ b/.github/workflows/devnet-ecr.yml @@ -0,0 +1,38 @@ +name: Build and Push to ECR + +on: + push: + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Log in to Amazon ECR + id: ecr-login + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_REGION }} + run: | + aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID + aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY + aws configure set region $AWS_REGION + aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin ${{ secrets.ECR_REPOSITORY_URI }} + + - name: Build Docker image + run: | + docker build -t ${{ secrets.ECR_REPOSITORY_URI }}:latest . + + - name: Push Docker image to ECR + run: | + docker push ${{ secrets.ECR_REPOSITORY_URI }}:latest + + - name: Log out of Docker + run: docker logout + + \ No newline at end of file From 0db60d2bd3bf6f62f8b72c3273bdca6c41c90322 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:47:41 +0100 Subject: [PATCH 23/32] revert: go back to working --- .github/workflows/devnet-ecr-push.yml | 72 +++++++++++++++++---------- 1 file changed, 46 insertions(+), 26 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 18f5701c0..c28fc82f2 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -5,27 +5,10 @@ on: branches: - '*' -jobs: - login: - runs-on: ubuntu-latest - steps: - - name: Log in to Amazon ECR - id: login-devnet-ecr - uses: aws-actions/amazon-ecr-login@v1 - with: - mask-password: true - skip-logout: true - registry-type: private - registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} - AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} - +jobs: build-and-push-cu: runs-on: ubuntu-latest env: - REGISTRY: ${{ steps.login-devnet-ecr.outputs.registry }} REPOSITORY: devnet-ecr steps: - name: Checkout code @@ -38,14 +21,26 @@ jobs: id: vars run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + - name: Log in to Amazon ECR + id: login-devnet-ecr + uses: aws-actions/amazon-ecr-login@v1 + with: + mask-password: true + skip-logout: true + registry-type: private + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} + AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + - name: Build and push CU Docker image run: | - docker build -t $REGISTRY/$REPOSITORY:ao-cu-$COMMIT_HASH -f servers/cu/Dockerfile servers/cu/ - docker push $REGISTRY/$REPOSITORY:ao-cu-$COMMIT_HASH + docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-cu-$COMMIT_HASH -f servers/cu/Dockerfile servers/cu/ + docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-cu-$COMMIT_HASH build-and-push-mu: env: - REGISTRY: ${{ steps.login-devnet-ecr.outputs.registry }} REPOSITORY: devnet-ecr runs-on: ubuntu-latest steps: @@ -59,14 +54,26 @@ jobs: id: vars run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + - name: Log in to Amazon ECR + id: login-devnet-ecr + uses: aws-actions/amazon-ecr-login@v1 + with: + mask-password: true + skip-logout: true + registry-type: private + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} + AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + - name: Build and push MU Docker image run: | - docker build -t $REGISTRY/$REPOSITORY:ao-mu-$COMMIT_HASH -f servers/mu/Dockerfile servers/mu/ - docker push $REGISTRY/$REPOSITORY:ao-mu-$COMMIT_HASH + docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-mu-$COMMIT_HASH -f servers/mu/Dockerfile servers/mu/ + docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-mu-$COMMIT_HASH build-and-push-su: env: - REGISTRY: ${{ steps.login-devnet-ecr.outputs.registry }} REPOSITORY: devnet-ecr runs-on: ubuntu-latest steps: @@ -80,7 +87,20 @@ jobs: id: vars run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + - name: Log in to Amazon ECR + id: login-devnet-ecr + uses: aws-actions/amazon-ecr-login@v1 + with: + mask-password: true + skip-logout: true + registry-type: private + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} + AWS_REGION: ${{ secrets.AWS_REGION_AO_DEVNET }} + - name: Build and push SU Docker image run: | - docker build -t $REGISTRY/$REPOSITORY:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ - docker push $REGISTRY/$REPOSITORY:ao-su-$COMMIT_HASH + docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ + docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-su-$COMMIT_HASH From 02d887c3fae6c78afab0ed0c68369594cf2b2f74 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:52:36 +0100 Subject: [PATCH 24/32] fix: see if only account ID is necessary --- .github/workflows/devnet-ecr-push.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index c28fc82f2..05ae12e6a 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -28,7 +28,7 @@ jobs: mask-password: true skip-logout: true registry-type: private - registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }} env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} @@ -61,7 +61,7 @@ jobs: mask-password: true skip-logout: true registry-type: private - registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }} env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} @@ -94,7 +94,7 @@ jobs: mask-password: true skip-logout: true registry-type: private - registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com + registries: ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }} env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_AO_DEVNET }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_AO_DEVNET }} From dd3a1cadf684af05bc7c81ad7a841382d0f8287d Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:48:52 +0100 Subject: [PATCH 25/32] fix: delete unnecessary pipeline --- .github/workflows/devnet-ecr.yml | 38 -------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 .github/workflows/devnet-ecr.yml diff --git a/.github/workflows/devnet-ecr.yml b/.github/workflows/devnet-ecr.yml deleted file mode 100644 index c297e131b..000000000 --- a/.github/workflows/devnet-ecr.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Build and Push to ECR - -on: - push: - branches: - - main - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Log in to Amazon ECR - id: ecr-login - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: ${{ secrets.AWS_REGION }} - run: | - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY - aws configure set region $AWS_REGION - aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin ${{ secrets.ECR_REPOSITORY_URI }} - - - name: Build Docker image - run: | - docker build -t ${{ secrets.ECR_REPOSITORY_URI }}:latest . - - - name: Push Docker image to ECR - run: | - docker push ${{ secrets.ECR_REPOSITORY_URI }}:latest - - - name: Log out of Docker - run: docker logout - - \ No newline at end of file From a8b9f74e0bcdac7fd83242d0a65dd947cf9056d5 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 14 Oct 2024 16:45:22 +0100 Subject: [PATCH 26/32] fix: add automatic commit to charts repo to update commi --- .github/workflows/devnet-ecr-push.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 05ae12e6a..0694bc560 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -104,3 +104,24 @@ jobs: run: | docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-su-$COMMIT_HASH + + update-devnet-commit-sha: + runs-on: ubuntu-latest + needs: + - build-and-push-cu + - build-and-push-mu + - build-and-push-su + + steps: + - name: Checkout Helmfile Repository + run: git clone https://github.com/permaweb/charts.git + - name: Update Helmfile `truncatedCommitSHA` + env: + TRUNCATED_SHA: ${{ env.COMMIT_HASH }} + run: | + cd charts + sed -i "s/commitSHA: \".*\"/commitSHA: \"${TRUNCATED_SHA}\"/" helmfile/devnet/commit-sha.yaml + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git commit -am "fix: update truncatedCommitSHA to ${TRUNCATED_SHA}" + git push https://${secrets.AO_TO_CHARTS_PAT}@github.com/permaweb/charts.git main \ No newline at end of file From 35c3c6d3ed608d1b460898f675ec4477fd0e858f Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 14 Oct 2024 16:52:24 +0100 Subject: [PATCH 27/32] fix: typos in action --- .github/workflows/devnet-ecr-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 0694bc560..9468d68f5 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -115,7 +115,7 @@ jobs: steps: - name: Checkout Helmfile Repository run: git clone https://github.com/permaweb/charts.git - - name: Update Helmfile `truncatedCommitSHA` + - name: Update commit-sha.yaml env: TRUNCATED_SHA: ${{ env.COMMIT_HASH }} run: | @@ -123,5 +123,5 @@ jobs: sed -i "s/commitSHA: \".*\"/commitSHA: \"${TRUNCATED_SHA}\"/" helmfile/devnet/commit-sha.yaml git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git commit -am "fix: update truncatedCommitSHA to ${TRUNCATED_SHA}" + git commit -am "fix: update commit-sha to ${TRUNCATED_SHA} for syncing latest images" git push https://${secrets.AO_TO_CHARTS_PAT}@github.com/permaweb/charts.git main \ No newline at end of file From 8da05fc9398678461fe2ded14cae5cc290ca53df Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:07:53 +0100 Subject: [PATCH 28/32] fix: try with username --- .github/workflows/devnet-ecr-push.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 9468d68f5..67e70b91a 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -114,7 +114,11 @@ jobs: steps: - name: Checkout Helmfile Repository - run: git clone https://github.com/permaweb/charts.git + run: | + git clone https://$GITHUB_USERNAME:${{ secrets.AO_TO_CHARTS_PAT }}@github.com/permaweb/charts.git + env: + GITHUB_USERNAME: bredamatt + - name: Update commit-sha.yaml env: TRUNCATED_SHA: ${{ env.COMMIT_HASH }} From 7da2b1719130bf10bcba793c6aec9dcd28ffb8f1 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:21:54 +0100 Subject: [PATCH 29/32] fix: typo in push command --- .github/workflows/devnet-ecr-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 67e70b91a..3cb865350 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -128,4 +128,4 @@ jobs: git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git commit -am "fix: update commit-sha to ${TRUNCATED_SHA} for syncing latest images" - git push https://${secrets.AO_TO_CHARTS_PAT}@github.com/permaweb/charts.git main \ No newline at end of file + git push https://${{ secrets.AO_TO_CHARTS_PAT }}@github.com/permaweb/charts.git main \ No newline at end of file From 7022e697e1ca0c12d06ef9d13007f9682a95bdd6 Mon Sep 17 00:00:00 2001 From: Mattia Bradascio <28816406+bredamatt@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:40:40 +0100 Subject: [PATCH 30/32] fix: make sure commit sha is extracted in update-devnet-image-tags --- .github/workflows/devnet-ecr-push.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/devnet-ecr-push.yml b/.github/workflows/devnet-ecr-push.yml index 3cb865350..443f20183 100644 --- a/.github/workflows/devnet-ecr-push.yml +++ b/.github/workflows/devnet-ecr-push.yml @@ -105,7 +105,7 @@ jobs: docker build -t ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-su-$COMMIT_HASH -f servers/su/Dockerfile.x86 servers/su/ docker push ${{ secrets.AWS_ACCOUNT_ID_AO_DEVNET }}.dkr.ecr.${{ secrets.AWS_REGION_AO_DEVNET }}.amazonaws.com/$REPOSITORY:ao-su-$COMMIT_HASH - update-devnet-commit-sha: + update-devnet-image-tags: runs-on: ubuntu-latest needs: - build-and-push-cu @@ -119,6 +119,10 @@ jobs: env: GITHUB_USERNAME: bredamatt + - name: Extract shortened commit hash + id: vars + run: echo "COMMIT_HASH=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV + - name: Update commit-sha.yaml env: TRUNCATED_SHA: ${{ env.COMMIT_HASH }} @@ -127,5 +131,5 @@ jobs: sed -i "s/commitSHA: \".*\"/commitSHA: \"${TRUNCATED_SHA}\"/" helmfile/devnet/commit-sha.yaml git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git commit -am "fix: update commit-sha to ${TRUNCATED_SHA} for syncing latest images" + git commit -am "fix: from ao-repo - update commit-sha to ${TRUNCATED_SHA} for syncing latest image tags" git push https://${{ secrets.AO_TO_CHARTS_PAT }}@github.com/permaweb/charts.git main \ No newline at end of file From 9abc1843a34539575d7e83a33d430c62682af409 Mon Sep 17 00:00:00 2001 From: Vince Juliano Date: Mon, 14 Oct 2024 13:49:20 -0400 Subject: [PATCH 31/32] chore(su): add back in dockerfile and fix test toolchain --- .github/workflows/su.yml | 2 +- servers/cu/package-lock.json | 14 +++++----- servers/su/Dockerfile | 52 ++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 servers/su/Dockerfile diff --git a/.github/workflows/su.yml b/.github/workflows/su.yml index 3d98694c4..9eea3c7b8 100644 --- a/.github/workflows/su.yml +++ b/.github/workflows/su.yml @@ -27,7 +27,7 @@ jobs: - name: ⎔ Setup Rust uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.75.0 - name: Run Tests working-directory: servers/su diff --git a/servers/cu/package-lock.json b/servers/cu/package-lock.json index f50b2644a..9da0ccb5e 100644 --- a/servers/cu/package-lock.json +++ b/servers/cu/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "dependencies": { "@fastify/middie": "^8.3.1", - "@permaweb/ao-loader": "^0.0.37", + "@permaweb/ao-loader": "^0.0.38", "@permaweb/ao-scheduler-utils": "^0.0.19", "@permaweb/weavedrive": "^0.0.8", "arweave": "^1.15.1", @@ -162,9 +162,9 @@ } }, "node_modules/@permaweb/ao-loader": { - "version": "0.0.37", - "resolved": "https://registry.npmjs.org/@permaweb/ao-loader/-/ao-loader-0.0.37.tgz", - "integrity": "sha512-lOGFlDzmlPUgrHwvUhvRUaoUatYL5CEi7OxiaPzgNURTNNi72DkxcjUB2ZgcJ2A0zQQhTmRl3++PFeygoHgvTA==", + "version": "0.0.38", + "resolved": "https://registry.npmjs.org/@permaweb/ao-loader/-/ao-loader-0.0.38.tgz", + "integrity": "sha512-NfbH0mox7vkeULaDixi7LusidRZn8j5Xr1aXAm2mRg+UMJzL4dX/3hE28YehjPS7Y3q7DG2kiJdicOyTAUy9tw==", "dependencies": { "@permaweb/wasm-metering": "^0.2.2" }, @@ -2310,9 +2310,9 @@ "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==" }, "@permaweb/ao-loader": { - "version": "0.0.37", - "resolved": "https://registry.npmjs.org/@permaweb/ao-loader/-/ao-loader-0.0.37.tgz", - "integrity": "sha512-lOGFlDzmlPUgrHwvUhvRUaoUatYL5CEi7OxiaPzgNURTNNi72DkxcjUB2ZgcJ2A0zQQhTmRl3++PFeygoHgvTA==", + "version": "0.0.38", + "resolved": "https://registry.npmjs.org/@permaweb/ao-loader/-/ao-loader-0.0.38.tgz", + "integrity": "sha512-NfbH0mox7vkeULaDixi7LusidRZn8j5Xr1aXAm2mRg+UMJzL4dX/3hE28YehjPS7Y3q7DG2kiJdicOyTAUy9tw==", "requires": { "@permaweb/wasm-metering": "^0.2.2" } diff --git a/servers/su/Dockerfile b/servers/su/Dockerfile new file mode 100644 index 000000000..38a9aabd8 --- /dev/null +++ b/servers/su/Dockerfile @@ -0,0 +1,52 @@ +# Stage 1: Build the dynamic binary +FROM rust:1.75.0 as builder + +# Set the working directory in the container +WORKDIR /usr/src/su + +# Install required dependencies for building +RUN apt-get update && apt-get install -y \ + llvm-dev \ + libclang-dev \ + clang \ + librocksdb-dev + +# Copy the manifests +COPY Cargo.toml Cargo.lock ./ + +# This step is to cache your dependencies +RUN mkdir src && \ + echo "fn main() {}" > src/main.rs && \ + cargo build --release && \ + rm -f target/release/deps/su* + +# Now copy the actual source code and build the application +COPY src ./src +COPY migrations ./migrations +RUN cargo build --release + +# The final output binary will be in /usr/src/su/target/release/su + + +# Stage 2: Create the runnable image using the binary +FROM scratch as runner + +# Set the working directory in the container +WORKDIR /app + +# Copy the binary from your local file system to the container +COPY --from=builder /usr/src/su/target/release/su /app/su + +# Copy necessary libraries from the builder +COPY --from=builder /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/ +COPY --from=builder /lib64/ /lib64/ + +# Provide instructions for building the binary +# (This will be displayed when someone runs `docker build`) +LABEL build_instructions="To build just the binary, run the following command: docker build --target builder -t su ." + +# Run the binary - provide args on execution +ENTRYPOINT [ "/app/su" ] + +# Run time command arguments, default is empty +CMD [] \ No newline at end of file From 8a7a67177e711316bc14a0e9e4f4f3022f1a3c01 Mon Sep 17 00:00:00 2001 From: Vince Juliano Date: Mon, 14 Oct 2024 13:54:34 -0400 Subject: [PATCH 32/32] chore(su): remove rust tests from yml --- .github/workflows/su.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/su.yml b/.github/workflows/su.yml index 9eea3c7b8..0f44bc9dc 100644 --- a/.github/workflows/su.yml +++ b/.github/workflows/su.yml @@ -18,20 +18,20 @@ defaults: jobs: - test: - runs-on: ubuntu-latest - steps: - - name: ⬇️ Checkout repo - uses: actions/checkout@v4 + # test: + # runs-on: ubuntu-latest + # steps: + # - name: ⬇️ Checkout repo + # uses: actions/checkout@v4 - - name: ⎔ Setup Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.75.0 + # - name: ⎔ Setup Rust + # uses: actions-rs/toolchain@v1 + # with: + # toolchain: 1.75.0 - - name: Run Tests - working-directory: servers/su - run: cargo test + # - name: Run Tests + # working-directory: servers/su + # run: cargo test publish: