-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
executable file
·59 lines (40 loc) · 2.53 KB
/
Dockerfile
File metadata and controls
executable file
·59 lines (40 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
FROM ubuntu:20.04 AS main
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/ && \
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 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
WORKDIR /app
COPY pom.xml .
COPY ./commons ./commons/
COPY ./emucomp-grpc-interface ./emucomp-grpc-interface/
COPY ./emucomp-impl ./emucomp-impl/
COPY ./emucomp-api ./emucomp-api/
RUN mvn clean package -DskipTests
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 --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
WORKDIR /app
COPY --from=build /app/emucomp-api/target/quarkus-app/quarkus-run.jar ./quarkus-run.jar
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 /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 ["/bin/bash", "-c", "/usr/bin/emucon-init --networks-dir=/tmp/nics --xpra-socket=/tmp/xpra-socket -- java -jar ./quarkus-run.jar"]