diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..31c9f53
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,9 @@
+# Ignore hidden files
+.*
+
+# Include .git for build version information
+!.git
+
+# Not needed for building
+AddMigration.*
+*.DotSettings.user
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..6f5644e
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,78 @@
+# +---------------------------+
+# | Prepare build environment |
+# +---------------------------+
+FROM mcr.microsoft.com/dotnet/sdk:7.0 AS phantom-base-builder
+
+ADD . /app
+WORKDIR /app
+
+RUN dotnet restore
+
+
+# +---------------------+
+# | Build Phantom Agent |
+# +---------------------+
+FROM phantom-base-builder AS phantom-agent-builder
+
+RUN dotnet publish Agent/Phantom.Agent/Phantom.Agent.csproj -c Release -o /app/out
+
+
+# +----------------------+
+# | Build Phantom Server |
+# +----------------------+
+FROM phantom-base-builder AS phantom-server-builder
+
+RUN dotnet publish Server/Phantom.Server.Web/Phantom.Server.Web.csproj -c Release -o /app/out
+RUN dotnet publish Server/Phantom.Server/Phantom.Server.csproj -c Release -o /app/out
+
+
+# +------------------------------+
+# | Download older Java versions |
+# +------------------------------+
+FROM ubuntu:focal AS java-legacy
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update &&       \
+    apt-get install -y      \
+    openjdk-8-jre-headless  \
+    openjdk-16-jre-headless \
+    openjdk-17-jre-headless
+
+
+# +------------------------------+
+# | Finalize Phantom Agent image |
+# +------------------------------+
+FROM mcr.microsoft.com/dotnet/runtime:7.0-jammy AS phantom-agent
+
+COPY --from=java-legacy /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/java-8-openjdk-amd64
+COPY --from=java-legacy /usr/lib/jvm/java-16-openjdk-amd64 /usr/lib/jvm/java-16-openjdk-amd64
+COPY --from=java-legacy /usr/lib/jvm/java-17-openjdk-amd64 /usr/lib/jvm/java-17-openjdk-amd64
+
+COPY --from=phantom-agent-builder --chmod=755 /app/out /app
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update &&  \
+    apt-get install -y \
+    openjdk-18-jre-headless
+
+RUN mkdir /data
+RUN chmod 777 /data
+WORKDIR /data
+
+ENTRYPOINT ["dotnet", "/app/Phantom.Agent.dll"]
+
+
+# +-------------------------------+
+# | Finalize Phantom Server image |
+# +-------------------------------+
+FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS phantom-server
+
+COPY --from=phantom-server-builder --chmod=755 /app/out /app
+
+RUN mkdir /data
+RUN chmod 777 /data
+WORKDIR /data
+
+ENTRYPOINT ["dotnet", "/app/Phantom.Server.dll"]