first test
This commit is contained in:
86
Dockerfile
Normal file
86
Dockerfile
Normal file
@@ -0,0 +1,86 @@
|
||||
FROM cloudron/base:5.0.0@sha256:04fd70dbd8ad6149c19de39e35718e024417c3e01dc9c6637eaf4a41ec4e596c
|
||||
|
||||
RUN mkdir -p /app/code
|
||||
WORKDIR /app/code
|
||||
ARG VERSION=4.5.0
|
||||
|
||||
# Prevent interactive prompts during installation
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install system dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
make \
|
||||
gcc \
|
||||
g++ \
|
||||
libmariadb3 \
|
||||
libmariadb-dev \
|
||||
libpq-dev \
|
||||
libffi-dev \
|
||||
musl-dev \
|
||||
curl \
|
||||
ca-certificates \
|
||||
libmagic-dev \
|
||||
7zip \
|
||||
tzdata \
|
||||
libbz2-dev \
|
||||
libssl-dev \
|
||||
libreadline-dev \
|
||||
libsqlite3-dev \
|
||||
zlib1g-dev \
|
||||
liblzma-dev \
|
||||
libncurses5-dev \
|
||||
libncursesw5-dev \
|
||||
unzip \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Clone release
|
||||
RUN wget https://github.com/rommapp/romm/archive/refs/tags/$VERSION.zip && \
|
||||
unzip $VERSION.zip -d /app/code && rm $VERSION.zip
|
||||
|
||||
# Install nvm
|
||||
ENV NVM_DIR="/root/.nvm"
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 18.20.8 \
|
||||
&& nvm use 18.20.8 \
|
||||
&& nvm alias default 18.20.8
|
||||
ENV PATH="$NVM_DIR/versions/node/v18.20.8/bin:$PATH"
|
||||
|
||||
# Build and install RAHasher (optional for RA hashes)
|
||||
RUN git clone --recursive --branch 1.8.1 --depth 1 https://github.com/RetroAchievements/RALibretro.git /tmp/RALibretro
|
||||
WORKDIR /tmp/RALibretro
|
||||
RUN sed -i '22a #include <ctime>' ./src/Util.h \
|
||||
&& sed -i '6a #include <unistd.h>' \
|
||||
./src/libchdr/deps/zlib-1.3.1/gzlib.c \
|
||||
./src/libchdr/deps/zlib-1.3.1/gzread.c \
|
||||
./src/libchdr/deps/zlib-1.3.1/gzwrite.c \
|
||||
&& make HAVE_CHD=1 -f ./Makefile.RAHasher \
|
||||
&& cp ./bin64/RAHasher /usr/bin/RAHasher
|
||||
RUN rm -rf /tmp/RALibretro
|
||||
|
||||
# Install frontend dependencies
|
||||
COPY frontend/package.json /app/code/frontend/
|
||||
WORKDIR /app/code/frontend
|
||||
RUN npm install
|
||||
|
||||
# Install uv for the non-root user
|
||||
COPY --from=ghcr.io/astral-sh/uv:0.7.19 /uv /uvx /usr/local/bin/
|
||||
|
||||
# Install Python
|
||||
RUN uv python install 3.13
|
||||
|
||||
|
||||
# Copy project files (including pyproject.toml and uv.lock)
|
||||
COPY pyproject.toml uv.lock* .python-version /app/code/
|
||||
|
||||
# Install Python dependencies
|
||||
RUN uv sync --all-extras
|
||||
|
||||
ENV PATH="/app/code/.venv/bin:${PATH}"
|
||||
|
||||
COPY start.sh /app/pkg/
|
||||
|
||||
CMD [ "/app/pkg/start.sh" ]
|
||||
|
||||
Reference in New Issue
Block a user