add builder step

main
Grégory Lebreton 3 months ago
parent 4968e58ecc
commit 705313829e

@ -1,44 +1,57 @@
# Run RetroArch Web Player for Raspberry Pi 5
FROM debian:bullseye-slim
# BUILD
FROM debian:bullseye-slim AS builder
LABEL maintainer="greg.lebreton@hotmail.com"
RUN apt-get update && apt-get install -y \
ca-certificates \
unzip \
sed \
p7zip-full \
coffeescript \
xz-utils \
nginx \
wget \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
ca-certificates \
unzip \
sed \
p7zip-full \
coffeescript \
xz-utils \
wget \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
# https://github.com/libretro/RetroArch/tree/master/pkg/emscripten
# https://buildbot.libretro.com/stable/
ENV RETROARCH_VERSION="1.19.0"
ENV ROOT_WWW_PATH="/var/www/html"
RUN cd ${ROOT_WWW_PATH} \
&& wget https://buildbot.libretro.com/stable/${RETROARCH_VERSION}/emscripten/RetroArch.7z \
&& 7z x -y RetroArch.7z \
&& mv retroarch/* . \
&& rmdir retroarch \
&& sed -i '/<script src="analytics.js"><\/script>/d' ./index.html \
&& chmod +x indexer \
&& mkdir -p ${ROOT_WWW_PATH}/assets/cores \
&& cd ${ROOT_WWW_PATH}/assets/frontend \
&& cat bundle.zip.* > bundle.zip \
&& unzip bundle.zip \
&& cd bundle \
&& ../../../indexer > .index-xhr \
&& cd ${ROOT_WWW_PATH}/assets/cores \
&& ../../indexer > .index-xhr \
&& rm -rf ${ROOT_WWW_PATH}/RetroArch.7z \
&& rm -rf ${ROOT_WWW_PATH}/assets/frontend/bundle.zip
COPY ./index.html /var/www/html
RUN mkdir -p ${ROOT_WWW_PATH} \
&& cd ${ROOT_WWW_PATH} \
&& wget https://buildbot.libretro.com/stable/${RETROARCH_VERSION}/emscripten/RetroArch.7z \
&& 7z x -y RetroArch.7z \
&& mv retroarch/* . \
&& rmdir retroarch \
&& sed -i '/<script src="analytics.js"><\/script>/d' ./index.html \
&& chmod +x indexer \
&& mkdir -p ${ROOT_WWW_PATH}/assets/cores \
&& cd ${ROOT_WWW_PATH}/assets/frontend \
&& cat bundle.zip.* > bundle.zip \
&& unzip bundle.zip \
&& cd bundle \
&& ../../../indexer > .index-xhr \
&& cd ${ROOT_WWW_PATH}/assets/cores \
&& ../../indexer > .index-xhr \
&& rm -rf ${ROOT_WWW_PATH}/RetroArch.7z \
&& rm -rf ${ROOT_WWW_PATH}/assets/frontend/bundle.zip
# FINAL
FROM debian:bullseye-slim
LABEL maintainer="greg.lebreton@hotmail.com"
RUN apt-get update && apt-get install -y \
nginx \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
ENV ROOT_WWW_PATH="/var/www/html"
COPY --from=builder ${ROOT_WWW_PATH} ${ROOT_WWW_PATH}
COPY ./index.html ${ROOT_WWW_PATH}
WORKDIR ${ROOT_WWW_PATH}
@ -46,4 +59,4 @@ EXPOSE 80
COPY entrypoint.sh /
CMD [ "sh", "/entrypoint.sh"]
CMD ["sh", "/entrypoint.sh"]

@ -41,44 +41,44 @@
<a class="dropdown-item" href="." data-core="fbalpha2012_neo">FB Alpha 2012 NeoGeo</a>
<a class="dropdown-item" href="." data-core="fceumm">FCEUmm</a>
<a class="dropdown-item" href="." data-core="ffmpeg">FFmpeg</a> -->
<a class="dropdown-item" href="." data-core="gambatte">Gambatte</a>
<a class="dropdown-item" href="." data-core="gme">Game Music Emu</a>
<a class="dropdown-item" href="." data-core="gambatte">GambeBoy</a>
<!-- <a class="dropdown-item" href="." data-core="gme">Game Music Emu</a> -->
<a class="dropdown-item" href="." data-core="genesis_plus_gx">Genesis Plus GX</a>
<a class="dropdown-item" href="." data-core="glupen64">GLupeN64</a>
<!--<a class="dropdown-item" href="." data-core="gpsp">gPSP</a>-->
<a class="dropdown-item" href="." data-core="handy">Handy</a>
<a class="dropdown-item" href="." data-core="lutro">Lutro</a>
<!-- <a class="dropdown-item" href="." data-core="handy">Handy</a>
<a class="dropdown-item" href="." data-core="lutro">Lutro</a> -->
<a class="dropdown-item" href="." data-core="mame2000">MAME 2000</a>
<a class="dropdown-item" href="." data-core="mednafen_lynx">Mednafen Lynx</a>
<a class="dropdown-item" href="." data-core="mednafen_ngp">Mednafen Neo Geo Pocket</a>
<!-- <a class="dropdown-item" href="." data-core="mednafen_lynx">Mednafen Lynx</a>
<a class="dropdown-item" href="." data-core="mednafen_ngp">Mednafen Neo Geo Pocket</a> -->
<a class="dropdown-item" href="." data-core="mednafen_pce_fast">Mednafen PC Engine Fast</a>
<!--<a class="dropdown-item" href="." data-core="mednafen_pcfx">Mednafen/Beetle PCFX</a>-->
<a class="dropdown-item" href="." data-core="mednafen_psx">Mednafen/Beetle PSX</a>
<!--<a class="dropdown-item" href="." data-core="mednafen_saturn">Mednafen/Beetle Saturn</a>-->
<a class="dropdown-item" href="." data-core="mednafen_snes">Mednafen/Beetle SNES</a>
<!-- <a class="dropdown-item" href="." data-core="mednafen_snes">Mednafen/Beetle SNES</a>
<a class="dropdown-item" href="." data-core="mednafen_vb">Mednafen/Beetle Virtual Boy</a>
<a class="dropdown-item" href="." data-core="mednafen_wswan">Mednafen/Beetle WonderSwan</a>
<a class="dropdown-item" href="." data-core="mu">Mu</a>
<a class="dropdown-item" href="." data-core="mu">Mu</a> -->
<a class="dropdown-item" href="." data-core="mupen64plus">Mupen64 Plus</a>
<a class="dropdown-item" href="." data-core="mrboom">MrBoom</a>
<!-- <a class="dropdown-item" href="." data-core="mrboom">MrBoom</a> -->
<a class="dropdown-item" href="." data-core="nestopia">Nestopia</a>
<a class="dropdown-item" href="." data-core="nxengine">NX Engine</a>
<!-- <a class="dropdown-item" href="." data-core="nxengine">NX Engine</a>
<a class="dropdown-item" href="." data-core="o2em">O2em</a>
<a class="dropdown-item" href="." data-core="picodrive">PicoDrive</a>
<a class="dropdown-item" href="." data-core="prboom">PrBoom</a>
<a class="dropdown-item" href="." data-core="quicknes">QuickNES</a>
<a class="dropdown-item" href="." data-core="flycast">Flycast</a>
<a class="dropdown-item" href="." data-core="snes9x2002">Snes9x 2002</a>
<a class="dropdown-item" href="." data-core="snes9x2005">Snes9x 2005</a>
<a class="dropdown-item" href="." data-core="snes9x2005">Snes9x 2005</a> -->
<a class="dropdown-item" href="." data-core="snes9x2010">Snes9x 2010</a>
<a class="dropdown-item" href="." data-core="snes9x">Snes9x</a>
<a class="dropdown-item" href="." data-core="squirreljme">SquirrelJME</a>
<!-- <a class="dropdown-item" href="." data-core="squirreljme">SquirrelJME</a>
<a class="dropdown-item" href="." data-core="stella">Stella</a>
<a class="dropdown-item" href="." data-core="tgbdual">TGB Dual</a>
<a class="dropdown-item" href="." data-core="theodore">Theodore (Thomson TO8/TO9)</a>
<a class="dropdown-item" href="." data-core="tyrquake">TyrQuake</a>
<a class="dropdown-item" href="." data-core="theodore">Theodore (Thomson TO8/TO9)</a> -->
<!-- <a class="dropdown-item" href="." data-core="tyrquake">TyrQuake</a>
<a class="dropdown-item" href="." data-core="vba_next">VBA Next</a>
<a class="dropdown-item" href="." data-core="vecx">Vecx</a>
<a class="dropdown-item" href="." data-core="vecx">Vecx</a> -->
<a class="dropdown-item" href="." data-core="virtualjaguar">Virtual Jaguar</a>
<a class="dropdown-item" href="." data-core="yabause">Yabause</a>
</div>

Loading…
Cancel
Save