aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEPICGAMES\thierry.begin <[email protected]>2024-04-08 10:27:09 -0400
committerEPICGAMES\thierry.begin <[email protected]>2024-04-08 10:27:09 -0400
commit1e41a4d7f7ece23134020024fa5ca2c64b766944 (patch)
tree86a9abdd804a30483b885a074fd33596ec8293e4
parent5.4.3 (diff)
downloadzen-1e41a4d7f7ece23134020024fa5ca2c64b766944.tar.xz
zen-1e41a4d7f7ece23134020024fa5ca2c64b766944.zip
Add docker support
-rw-r--r--.dockerignore27
-rw-r--r--Dockerfile40
-rw-r--r--README.Docker.md37
-rw-r--r--docker-compose.yaml14
4 files changed, 118 insertions, 0 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 000000000..09be4b45b
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,27 @@
+**/.DS_Store
+**/__pycache__
+**/.venv
+**/.classpath
+**/.dockerignore
+**/.env
+**/.git
+**/.gitignore
+**/.project
+**/.settings
+**/.toolstarget
+**/.vs
+**/.vscode
+**/*.*proj.user
+**/*.dbmdl
+**/*.jfm
+**/bin
+**/charts
+**/docker-compose*
+**/Dockerfile*
+**/node_modules
+**/npm-debug.log
+**/obj
+**/secrets.dev.yaml
+**/values.dev.yaml
+LICENSE
+README.md
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000000000..f0c033284
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,40 @@
+# Latest Ubuntu LTS release as of November 2022
+FROM docker.io/library/ubuntu:22.04 AS Base
+RUN mkdir /root/zen/
+RUN apt-get update
+
+## SETUP PHASE
+FROM base AS setup
+# installing software-properties-common needed for add-apt-repository
+RUN apt-get install -y software-properties-common
+# adding extra apt repositories for dependencies
+RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
+ add-apt-repository ppa:xmake-io/xmake
+# installing extra dependecies
+RUN apt-get update && \
+ apt-get install -y \
+ curl \
+# netcat \
+ wget \
+ xmake \
+ git \
+ build-essential \
+ zip \
+ pkg-config && \
+ apt install -y --no-install-recommends g++-11
+
+# installing third party dependencies are provided by Microsoft's vcpkg
+RUN git clone https://github.com/microsoft/vcpkg.git ~/zen/vcpkg
+RUN ~/zen/vcpkg/bootstrap-vcpkg.sh
+
+## BUILDING ZENSERVER PHASE
+FROM setup AS build_zenserver
+COPY . /root/zen/main
+RUN export VCPKG_ROOT=~/zen/vcpkg &&\
+ export XMAKE_ROOT=y &&\
+ cd ~/zen/main &&\
+ scripts/ue_build_linux/get_ue_toolchain.sh ./.tmp-ue-toolchain && \
+ scripts/ue_build_linux/ue_build.sh .tmp-ue-toolchain xmake config -y --mode=debug && \
+ scripts/ue_build_linux/ue_build.sh .tmp-ue-toolchain xmake build
+
+RUN cp ~/zen/main/build/linux/x86_64/debug/zenserver usr/bin/zenserver
diff --git a/README.Docker.md b/README.Docker.md
new file mode 100644
index 000000000..36bc28c22
--- /dev/null
+++ b/README.Docker.md
@@ -0,0 +1,37 @@
+# ZenServer in Docker
+
+## Simple Build & Launch:
+`docker compose up --build`.
+
+## docker-compose :
+```
+version: '3'
+services:
+ zenserver:
+ container_name: zenserver
+ build:
+ context: .
+ dockerfile: ./Dockerfile
+ command: zenserver
+ ports:
+ - "8558:8558"
+ volumes:
+ - /path/to/data:/root/.zen/Data
+volumes:
+ zenserver-data:
+```
+
+## docker cli (after local image build) :
+### Build
+`docker build --tag zen-zenserver:latest .`
+
+### Launch
+```
+docker run -d \
+--name=zenserver \
+-p 8558:8558 \
+-v /path/to/data:/root/.zen/Data \
+--restart unless-stopped \
+zen-zenserver:latest \
+"zenserver"
+``` \ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 000000000..c707a01d6
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,14 @@
+version: '3'
+services:
+ zenserver:
+ container_name: zenserver
+ build:
+ context: .
+ dockerfile: ./Dockerfile
+ command: zenserver -p 8558 --data-dir /root/.zen/Data
+ ports:
+ - "8558:8558"
+ volumes:
+ - zenserver-data:/root/.zen/Data
+volumes:
+ zenserver-data: \ No newline at end of file