forked from akamicah/overte-domain-server-docker
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Dockerfile.build
52 lines (42 loc) · 2.16 KB
/
Dockerfile.build
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
# Docker environment for building Overte server (Updated 02/07/2024)
FROM ubuntu:22.04
SHELL ["/bin/bash", "-c"]
ARG TAG=master # build master if no tag is defined
ARG DEBIAN_FRONTEND=noninteractive
ARG TERM=linux
RUN mkdir /opt/overte-build \
&& mkdir /opt/overte
# Install dependencies
RUN apt update && apt install -y python3-full zip tzdata curl ninja-build git cmake g++ libssl-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev \
libqt5websockets5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev libqt5webchannel5-dev qtwebengine5-dev libqt5xmlpatterns5-dev
# Fetch repository
RUN git clone --depth 1 --branch ${TAG} https://github.com/overte-org/overte.git /opt/overte-build/
# Build just the server
RUN cd /opt/overte-build \
&& mkdir build \
&& cd ./build \
&& export OVERTE_USE_SYSTEM_QT=1 \
&& export RELEASE_TYPE=PRODUCTION \
&& export RELEASE_NUMBER=${TAG} \
&& if [ $(uname -m) == "x86_64" ]; then \
# amd64 \
cmake -DSERVER_ONLY=1 -DBUILD_TOOLS=1 -DOVERTE_CPU_ARCHITECTURE=-msse3 ..; \
else \
# aarch64 \
VCPKG_FORCE_SYSTEM_BINARIES=1 cmake -DSERVER_ONLY=1 -DBUILD_TOOLS=1 -DOVERTE_CPU_ARCHITECTURE= ..; \
fi
# put number after -j to limit cores.
RUN cd /opt/overte-build/build \
&& make -j`nproc` domain-server \
&& make -j`nproc` assignment-client \
&& make -j`nproc` oven # needed for baking
RUN VCPKG_PATH=$(python3 /opt/overte-build/prebuild.py --get-vcpkg-path --build-root . --quiet) && \
echo "VCPKG Path: $VCPKG_PATH" && \
find "$VCPKG_PATH" -type f -name "libnode.so.108" -exec cp {} /opt/overte-build/build/libraries \; || \
echo "libnode.so.108 not found in $VCPKG_PATH"
RUN mv /opt/overte-build/build/libraries /opt/overte/libraries \
&& mv /opt/overte-build/build/assignment-client/assignment-client /opt/overte/assignment-client \
&& mv /opt/overte-build/build/assignment-client/plugins /opt/overte/plugins \
&& mv /opt/overte-build/build/domain-server/domain-server /opt/overte/domain-server \
&& mv /opt/overte-build/domain-server/resources /opt/overte/resources \
&& mv /opt/overte-build/build/tools/oven/oven /opt/overte/oven