| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:8ce1caf246e7c778bca84c516d02fd4e83766bb2c530a0fffa8a351b560a2728 in / |
| CMD ["/bin/bash"] |
| ENV PLAYWRIGHT_VERSION=1.53.0 |
| ENV RUST_VERSION=1.93.1 |
| ENV NODE_VERSION=25.6.0 |
| RUN /bin/sh -c apt-get update && apt-get install -y libssl-dev nginx build-essential make curl clang git libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 libxkbcommon0 libatspi2.0-0t64 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2t64 postgresql pkg-config sudo zsh ripgrep ca-certificates zstd # buildkit |
| RUN /bin/sh -c install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources <<SRC
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
SRC
apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
usermod -aG docker ubuntu
systemctl enable docker.service
systemctl enable containerd.service
# buildkit |
| ENV USER=ubuntu |
| RUN /bin/sh -c echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers # buildkit |
| USER ubuntu |
| ENV NVM_DIR=/home/ubuntu/.nvm |
| RUN /bin/sh -c curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash # buildkit |
| RUN /bin/sh -c bash -c ". ${NVM_DIR}/nvm.sh && nvm install ${NODE_VERSION} && nvm alias default ${NODE_VERSION} && nvm use ${NODE_VERSION}" # buildkit |
| ENV PATH=/home/ubuntu/.nvm/versions/node/v25.6.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN /bin/sh -c npm i -g "@playwright/test@${PLAYWRIGHT_VERSION}" && npx playwright install --with-deps # buildkit |
| RUN /bin/sh -c curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -c rust-analyzer,rust-src,rustfmt,clippy,rust-docs,cargo --default-toolchain=${RUST_VERSION} # buildkit |
| ENV PATH=/home/ubuntu/.cargo/bin:/home/ubuntu/.nvm/versions/node/v25.6.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV CARGO_HOME=/home/ubuntu/.cargo |
| RUN /bin/sh -c cargo install sqlx-cli # buildkit |
| RUN /bin/sh -c cargo install cargo-chef # buildkit |
| RUN /bin/sh -c cd
curl -L https://install.meilisearch.com | sh
sudo mv meilisearch /usr/local/bin/
# buildkit |
| RUN /bin/sh -c mkdir -p /tmp/frontend /tmp/backend # buildkit |
| COPY --chown=ubuntu /tmp/backend/recipe.json /tmp/backend/recipe.json # buildkit |
| RUN /bin/sh -c cd /tmp/backend && cargo chef cook --recipe-path recipe.json --all-targets && cargo chef cook --recipe-path recipe.json --clippy --all-targets && cargo fetch # buildkit |
| COPY --parents --chown=ubuntu frontend/*/package.json /tmp/ # buildkit |
| RUN /bin/sh -c cd /tmp/frontend
npm ci
# buildkit |
| COPY --chown=ubuntu /tmp/backend/ /tmp/backend # buildkit |
| COPY --chown=ubuntu /home/ubuntu/.cargo/git /home/ubuntu/.cargo/git # buildkit |
| COPY --chown=ubuntu /home/ubuntu/.cargo/registry /home/ubuntu/.cargo/registry # buildkit |