mirror of
https://github.com/gaseous-project/gaseous-server
synced 2026-04-21 13:27:16 +00:00
Integrate ffmpeg into the Dockerfiles to enable multimedia processing capabilities and update the README to reflect this new requirement.
80 lines
No EOL
2.3 KiB
Text
80 lines
No EOL
2.3 KiB
Text
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0 AS build-env
|
|
ARG TARGETARCH
|
|
ARG BUILDPLATFORM
|
|
WORKDIR /App
|
|
EXPOSE 80
|
|
|
|
RUN echo "Target: $TARGETARCH"
|
|
RUN echo "Build: $BUILDPLATFORM"
|
|
|
|
# Copy everything
|
|
COPY .. ./
|
|
|
|
# Build Gaseous Web Server
|
|
# Restore as distinct layers
|
|
RUN dotnet restore "gaseous-server/gaseous-server.csproj" -a $TARGETARCH
|
|
# Build and publish a release
|
|
RUN dotnet publish "gaseous-server/gaseous-server.csproj" --use-current-runtime --self-contained true -c Release -o out -a $TARGETARCH
|
|
|
|
# update apt-get
|
|
RUN apt-get update && apt upgrade -y
|
|
|
|
# download and unzip EmulatorJS from CDN
|
|
# RUN apt-get install -y p7zip-full
|
|
# RUN mkdir -p out/wwwroot/emulators/EmulatorJS
|
|
# RUN wget https://cdn.emulatorjs.org/releases/4.2.3.7z
|
|
# RUN 7z x -y -oout/wwwroot/emulators/EmulatorJS 4.2.3.7z
|
|
RUN bash build/scripts/get-ejs-git.sh && mv gaseous-server/wwwroot/emulators/EmulatorJS out/wwwroot/emulators/EmulatorJS
|
|
|
|
# Build runtime image
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0
|
|
ENV INDOCKER=1
|
|
WORKDIR /App
|
|
COPY --from=build-env /App/out .
|
|
|
|
# variables
|
|
ARG PUID=1000
|
|
ARG PGID=1000
|
|
ARG dbhost=localhost
|
|
ARG dbuser=root
|
|
ARG dbpass=gaseous
|
|
ARG MARIADB_ROOT_PASSWORD=$dbpass
|
|
|
|
ENV PUID=${PUID}
|
|
ENV PGID=${PGID}
|
|
ENV dbhost=${dbhost}
|
|
ENV dbuser=${dbuser}
|
|
ENV dbpass=${dbpass}
|
|
ENV MARIADB_ROOT_PASSWORD=${dbpass}
|
|
|
|
# install mariadb
|
|
RUN DEBIAN_FRONTEND=noninteractive && \
|
|
apt-get update && apt-get install -y mariadb-server mariadb-client
|
|
RUN mkdir -p /run/mysqld
|
|
COPY ../build/embeddeddb/mariadb.sh /usr/sbin/start-mariadb.sh
|
|
RUN chmod +x /usr/sbin/start-mariadb.sh
|
|
|
|
# install supervisord
|
|
RUN apt-get install -y supervisor
|
|
COPY ../build/embeddeddb/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
RUN mkdir -p /var/run/supervisord
|
|
RUN mkdir -p /var/log/supervisord
|
|
|
|
# Install support tools
|
|
RUN apt-get install -y curl ffmpeg
|
|
|
|
# clean up apt-get
|
|
RUN apt-get clean && rm -rf /var/lib/apt/lists
|
|
|
|
# copy entrypoint
|
|
COPY ../build/embeddeddb/entrypoint.sh /usr/sbin/entrypoint.sh
|
|
RUN chmod +x /usr/sbin/entrypoint.sh
|
|
|
|
# volumes
|
|
VOLUME /home/gaseous/.gaseous-server /var/lib/mysql
|
|
|
|
# Configure healthcheck
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 CMD curl --fail http://localhost:80/api/v1.1/HealthCheck || exit 1
|
|
|
|
# start services
|
|
ENTRYPOINT [ "/usr/sbin/entrypoint.sh" ] |