# This dockerfile is used as basis for the CI jobs.
# Process to renew it:
# 0. Login to gitea docker registry: `docker login git.hofer.link`
# 1. Build the image `docker build .`
# 2. Tag the image: `docker tag <id> git.hofer.link/philipp/ci-images:rust-latest`
# 3. Push the image: `docker push git.hofer.link/philipp/ci-images:rust-latest`


FROM rust:1.95

RUN apt-get update && apt-get install -y sqlite3

# nodejs
RUN apt-get install -y curl && \
    curl -sL https://deb.nodesource.com/setup_24.x | bash - && \
    apt-get install -y nodejs

# openssl for openssl-sys
RUN apt-get install -y libssl-dev

# playwright
RUN npx playwright install --with-deps

# deployment
RUN rustup target add x86_64-unknown-linux-musl
RUN apt-get install -y -qq pkg-config sshpass musl musl-tools curl gnupg libssl-dev

# to enable cargo upgrade
RUN cargo install cargo-edit

# TEMPORARY act workaround (otherwise gitea cache is not working)
RUN apt-get install -y zstd

