Files
gravity/Dockerfile
T
2024-07-12 18:01:54 +02:00

59 lines
1.5 KiB
Docker

# Use an official Ubuntu as a parent image
FROM ubuntu:20.04
# Prevent interactive prompts
ENV DEBIAN_FRONTEND=noninteractive
# Install dependencies
RUN apt-get update && apt-get install -y \
build-essential \
git \
curl \
zip \
unzip \
tar \
pkg-config \
software-properties-common \
tzdata
# Set timezone to UTC
RUN ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
dpkg-reconfigure --frontend noninteractive tzdata
# Install CMake
RUN apt-get update \
&& apt-get install -y wget \
&& wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.sh \
&& sh cmake-3.28.0-linux-x86_64.sh --prefix=/usr/local --skip-license \
&& rm cmake-3.28.0-linux-x86_64.sh
# Install vcpkg
RUN git clone https://github.com/Microsoft/vcpkg.git /vcpkg \
&& cd /vcpkg \
&& git pull \
&& ./bootstrap-vcpkg.sh \
&& ./vcpkg integrate install
# Set environment variables for vcpkg
ENV VCPKG_ROOT=/vcpkg
ENV VCPKG_DEFAULT_TRIPLET=x64-linux
# Set the working directory
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . .
# Install project dependencies using vcpkg
RUN /vcpkg/vcpkg update \
&& /vcpkg/vcpkg install $(cat vcpkg.json | jq -r '.dependencies[]')
# Build the project
RUN mkdir build \
&& cd build \
&& cmake .. -DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake \
&& cmake --build .
# Specify the command to run the executable
CMD ["./build/gravity"]