mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-01-23 10:35:44 +00:00
* Add initial external configuration files support. These external configuration files allow changing app params at the runtime without recompilation. * Find config files with specified directory in the tests * Add aspect ratio recalculation config * Clean code * Add new configuration files into the Docker container image * Add shared core and config paths into the Libretro cores config * Split ROM <-> Emulator mapping between workers and coordinators * Extract coordinator config * Add shared worker/coordinator server config * Add explicit embedded shared worker/coordinator struct for auto-config reflection fill * Remove default stun/turn servers from the config * Extract and add new ice servers config structures * Update coordinator config params * Add auto emulation lib loader based on the runtime OS/arch * Update configuration structures * Remove shared config embedding * Add missing network config params * Add game library external config * Remove unused config parameters * Add WebRTC encoder external options * Add user dir for config search * Update config loader * Update config * Add generic downloader with Grab lib implementation * Add a simple file downloader backed by the grab lib * Add initial Libretro core repos abstractions * Expose compression info for Libretro cores repository records * Add pipe-based abstract file downloader * Refactor downloader * Refactor Libretro repos * Add worker coresync stubs * Add multiprocess-safe HTTP-based core manager implementation * Remove Libretro cores from the repo * Keep custom N64 cores in te repo for now * Add Libretro cores repo select in the config * Fix http manager repo switch * Cleanup code * Add greedy Libretro lib loader * Don't crash when arch map is not set * Disable dynamic recompiler for pcsx core by default since it's could cause a crash * Use global Libretro dynalib handler * Shorten the default Libretro cores store path * Update zip extractor implementation * Remove explicit fig lib field markings * Add config note to the README file * Add GitHub repo backend for the core downloader * Fix GitHub repo param list in the manager factory * Add env variables reader with CLOUD_GAME prefix * Re-optimize ice server info struct custom marshaler
49 lines
948 B
Docker
Vendored
49 lines
948 B
Docker
Vendored
# The base cloud-game image
|
|
ARG BUILD_PATH=/go/src/github.com/giongto35/cloud-game
|
|
|
|
# build image
|
|
FROM golang:1.15 AS build
|
|
ARG BUILD_PATH
|
|
WORKDIR ${BUILD_PATH}
|
|
|
|
# system libs layer
|
|
RUN apt-get update && apt-get install -y \
|
|
make \
|
|
pkg-config \
|
|
libvpx-dev \
|
|
libopus-dev \
|
|
libopusfile-dev \
|
|
libsdl2-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# go deps layer
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
# app build layer
|
|
COPY ./ ./
|
|
RUN make build
|
|
|
|
# base image
|
|
FROM debian:10-slim
|
|
ARG BUILD_PATH
|
|
WORKDIR /usr/local/share/cloud-game
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
libvpx5 \
|
|
libopus0 \
|
|
libopusfile0 \
|
|
libsdl2-2.0-0 \
|
|
libgl1-mesa-glx \
|
|
xvfb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=build ${BUILD_PATH}/bin/ ./
|
|
RUN cp -s $(pwd)/* /usr/local/bin
|
|
COPY web ./web
|
|
COPY assets/cores/*.so \
|
|
assets/cores/*.cfg \
|
|
./assets/cores/
|
|
COPY configs ./configs
|
|
|
|
EXPOSE 8000 9000 3478/tcp 3478/udp
|