aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Finrod Felagund <finrod.felagund.97@gmail.com>2024-03-04 14:49:02 +0100
committerLibravatar GitHub <noreply@github.com>2024-03-04 14:49:02 +0100
commite000d70acde040a1bd59d19d410ed1e450b842ac (patch)
treece8f4a78878b20084b6cfe264f7588fe395fee22
parent0d87b4053983ec8edaff5b73491b717866876586 (diff)
Create Dockerfile for the build environment
-rw-r--r--Dockerfile64
1 files changed, 64 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..6342d2b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,64 @@
+# syntax=docker/dockerfile:1
+
+FROM ubuntu:22.04
+
+
+# install build tools
+RUN apt-get update
+RUN apt-get -y install cmake && apt-get -y install build-essential
+RUN apt-get -y install git
+
+# install dependencies
+RUN apt-get -y install libboost-all-dev
+RUN apt-get -y install libssl-dev
+RUN apt-get -y install libwebsocketpp-dev
+
+# create slavehost user
+RUN useradd -ms /bin/bash slavehost
+RUN usermod -aG sudo slavehost
+
+WORKDIR /home/slavehost
+
+# install plog dependency
+RUN git clone https://github.com/SergiusTheBest/plog.git
+WORKDIR /home/slavehost/plog
+RUN mkdir build
+WORKDIR /home/slavehost/plog/build
+RUN cmake ..
+RUN make
+RUN make install
+
+# return to user dir
+WORKDIR /home/slavehost
+
+# install nlohmann json
+RUN git clone https://github.com/nlohmann/json.git
+WORKDIR /home/slavehost/json
+RUN mkdir build
+WORKDIR /home/slavehost/json/build
+RUN cmake ..
+RUN make
+RUN make install
+
+# return to user dir
+WORKDIR /home/slavehost
+
+# change user to slavehost
+USER slavehost
+
+# create workspace dir
+RUN mkdir -p workspace/nostrsdk
+
+# Add source files to docker container
+COPY include /home/slavehost/workspace/nostrsdk/include
+COPY src /home/slavehost/workspace/nostrsdk/src
+COPY test /home/slavehost/workspace/nostrsdk/test
+COPY .gitignore /home/slavehost/workspace/nostrsdk/.gitignore
+COPY CMakeLists.txt /home/slavehost/workspace/nostrsdk/CMakeLists.txt
+
+WORKDIR /home/slavehost/workspace/nostrsdk/
+
+RUN mkdir build
+WORKDIR /home/slavehost/workspace/nostrsdk/build
+RUN cmake ..
+RUN make