Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 23 additions & 33 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,38 +1,23 @@
FROM ubuntu:18.04 AS main
FROM ubuntu:20.04 AS main

RUN apt-get update && apt-get install -y wget unzip sudo && rm -rf /var/lib/apt/lists/*
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
wget unzip sudo coreutils xpra python3-pip sed runc && rm -rf /var/lib/apt/lists/*

RUN wget https://gitlab.com/emulation-as-a-service/emucon-tools/-/archive/master/emucon-tools-master.zip -O /tmp/emucon-tools-master.zip

RUN unzip /tmp/emucon-tools-master.zip -d /tmp/ && \
ls -la /tmp/ && \
ls -la /tmp/emucon-tools-master || true
cp -vrp /tmp/emucon-tools-master/runtime/bin /usr/local && \
cp -vrp /tmp/emucon-tools-master/runtime/lib /usr/local && \
cp -vrp /tmp/emucon-tools-master/runtime/share /usr/local && \
install -v -m 'a=rx' /tmp/emucon-tools-master/builder/commands/layer/layers/base/scripts/emucon-init /usr/bin/emucon-init && \
chmod +x /usr/bin/emucon-init && \
sed -i '/--html=off/a\\t --speaker=on \\\n\t --pulseaudio=yes \\\n\t \
--pulseaudio-server=unix:\/tmp\/${display#:}\/pulse-socket \\\n\t \
--speaker-codec=opus \\\n\t --audio-source=pulse' /usr/bin/emucon-init && \
. /tmp/emucon-tools-master/bootstrap.sh

RUN addgroup --gid 1000 bwfla
RUN addgroup fuse
RUN useradd -ms /bin/bash --uid 1000 --gid bwfla bwfla && for grp in fuse disk audio plugdev; do adduser bwfla $grp; done

RUN chown bwfla:bwfla /home/bwfla

RUN mkdir -p /home/bwfla/.bwFLA \
/home/bwfla/demo-ui \
/home/bwfla/image-archive \
/home/bwfla/log \
/home/bwfla/objects \
/home/bwfla/server-data \
/home/bwfla/import \
/home/bwfla/export \
/home/bwfla/defaults


WORKDIR /tmp/emucon-tools-master
RUN . ./bootstrap.sh && \
mkdir -p /bin/builder && \
ln -sf /tmp/emucon-tools-master/builder/ /bin/builder/ && \
mkdir -p /bin/installer && \
ln -sf /tmp/emucon-tools-master/installer/install-oci-tools.sh /bin/installer/install-oci-tools.sh && \
. ./install.sh --destination /usr/local -u bwfla && \
./installer/install-deps.sh
RUN sed -i '$s/$/ -nolisten local/' /etc/xpra/conf.d/55_server_x11.conf
RUN sed -i '$s/-auth *[^ ]*//' /etc/xpra/conf.d/55_server_x11.conf


FROM maven:3.8.6-eclipse-temurin-11 AS build
Expand All @@ -52,8 +37,9 @@ FROM eclipse-temurin:11-jdk-jammy
RUN echo "locales locales/default_environment_locale string en_US.UTF-8" | debconf-set-selections
RUN echo "keyboard-configuration keyboard-configuration/layoutcode string us" | debconf-set-selections
RUN DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y xpra socat vde2 qemu-utils qemu-system ntfs-3g util-linux sudo unzip pulseaudio pulseaudio-utils
RUN rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y --no-install-recommends runc xpra socat vde2 qemu-utils ntfs-3g util-linux sudo unzip coreutils && rm -rf /var/lib/apt/lists/*


RUN mkdir -p /linapple-pie /minivmac /usr/local/bin

Expand All @@ -63,7 +49,11 @@ COPY --from=build /app/emucomp-api/target/quarkus-app/lib/ ./lib/
COPY --from=build /app/emucomp-api/target/quarkus-app/app/ ./app/
COPY --from=build /app/emucomp-api/target/quarkus-app/quarkus/ ./quarkus/

COPY --from=main /tmp/oci-tools /usr/local
COPY --from=main /etc/xpra/conf.d/55_server_x11.conf /etc/xpra/conf.d/55_server_x11.conf

COPY --from=main /usr/bin/emucon-init /usr/bin/
COPY --from=main /usr/local /usr/local

EXPOSE 8080
CMD ["java", "-jar", "./quarkus-run.jar"]

CMD ["/bin/bash", "-c", "/usr/bin/emucon-init --networks-dir=/tmp/nics --xpra-socket=/tmp/xpra-socket -- java -jar ./quarkus-run.jar"]
Loading