From 9151243c52ed369982ffb73c15946c5cde829abd Mon Sep 17 00:00:00 2001 From: Ninjaws Date: Wed, 4 Dec 2024 20:54:29 +0100 Subject: [PATCH] [Added] Start of the Dockerfile and Devcontainer --- .devcontainer/devcontainer.json | 29 +++++++++++++++ Dockerfile | 60 +++++++++++++++++++++++++++++++ Sources.xlsx | Bin 0 -> 14115 bytes scripts/build_and_run_project.sh | 4 +++ scripts/watch_project.sh | 2 ++ 5 files changed, 95 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 Dockerfile create mode 100644 Sources.xlsx create mode 100755 scripts/build_and_run_project.sh create mode 100755 scripts/watch_project.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..2a3b61c --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,29 @@ +{ + "name": "Jelly Rescue", + "build": { + "context": "..", + "dockerfile": "../Dockerfile", + "args": {}, + "target": "development" + }, + "runArgs": [ + "--name=jelly-rescue-dev-cont", + "--net=host" + ], + "workspaceFolder": "/app", + "mounts": [ + "source=./src,target=/app/src,type=bind" + ], + "customizations": { + "vscode": { + "settings": {}, + "extensions": [ + "esbenp.prettier-vscode", + "ms-vscode.cpptools-extension-pack", + "jeff-hykin.better-cpp-syntax" + ] + } + }, + // "postCreateCommand": "/app/scripts/emsdk_setup.sh", + //"postStartCommand": "/app/scripts/emsdk_activate.sh" +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0628e8f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,60 @@ +FROM gcc:latest as base + +# RUN apt-get install cmake \ + # && rm -rf /var/cache/apt/* + + +FROM base as development +# RUN apt-get update \ +# && apt-get install -y entr \ +# && rm -rf /var/cache/apt/* + +RUN apt-get update \ + && apt-get install -y \ + entr \ + cmake \ + libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev \ + libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev \ + sudo \ + && rm -rf /var/cache/apt/* + + +RUN groupadd -g 1000 dev && useradd -m -u 1000 -g dev dev +RUN chsh -s /bin/bash dev # Set the default shell to bash for the dev user + +WORKDIR /app +RUN chown -R dev:dev /app + +RUN echo "dev ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/dev && \ + chmod 0440 /etc/sudoers.d/dev + +COPY scripts ./scripts +RUN chmod +x /app/scripts/*.sh + +USER dev +SHELL ["/bin/bash", "-c"] +RUN g++ --version + +RUN git clone https://github.com/emscripten-core/emsdk.git && \ + cd emsdk && \ + ./emsdk install latest && \ + ./emsdk activate latest && \ + cd .. + +RUN echo 'source "/app/emsdk/emsdk_env.sh"' >> $HOME/.bash_profile + +RUN git clone https://github.com/raysan5/raylib.git raylib \ + && cd raylib \ + && mkdir build && cd build \ + && cmake -DBUILD_SHARED_LIBS=ON .. \ + && make \ + && sudo make install + +# RUN git clone https://github.com/raysan5/raylib.git raylib \ +# && cd raylib \ +# && mkdir build && cd build \ +# && cmake -DBUILD_SHARED_LIBS=ON .. \ +# && make \ +# && make install + +CMD ["bash"] diff --git a/Sources.xlsx b/Sources.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3e44466ae9814651c1fcbb261c52b48fc158992c GIT binary patch literal 14115 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