From 5e05ffea16c79ca91ec42ec108f15ff97bf77f00 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Sat, 18 Apr 2026 21:22:07 -0500 Subject: [PATCH] Externalized parts of Docker file to base image; Updated README --- Docker/Dockerfile | 60 +++++++---------------------------------------- README.md | 25 ++++++++++---------- 2 files changed, 21 insertions(+), 64 deletions(-) diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 06de89b..cd46317 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,16 +1,14 @@ # 1. A: Define a base image -# FROM scratch -# FROM busybox -# FROM alpine:3.22.1 -# FROM alpine:latest -# FROM python:3.12 -FROM debian:bookworm-slim +FROM itdominator-base # 1. B: Set ENV Variables ENV NVM_VERSION=0.40.3 ENV NODE_VERSION=24.9.0 ENV PYTHON_VERSION=3.12.12 +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 + ENV NVM_DIR="/root/.nvm" ENV PYENV_ROOT="/opt/pyenv" ENV JEXTRACT_PATH="/opt/jextract" @@ -28,9 +26,6 @@ ENV PATH="${MAVEN_PATH}/bin:${PATH}" ENV PATH="${JAVA_HOME}/bin:${PATH}" ENV PATH="/opt:${PATH}" -ENV PYTHONDONTWRITEBYTECODE=1 -ENV PYTHONUNBUFFERED=1 - # 2. Set the working directory inside the container WORKDIR /app @@ -49,51 +44,12 @@ RUN apt-get update RUN apt-get install -y \ --no-install-recommends \ --no-install-suggests \ - pkg-config \ - ca-certificates \ - libreadline-dev \ - liblzma-dev \ - libsqlite3-dev \ - libncurses5-dev \ - libncursesw5-dev \ - libgirepository1.0-dev \ - libssl-dev libcairo2-dev \ - bash-completion \ - parallel \ - 7zip \ - zip \ - tar \ - curl \ - wget \ - git \ clang \ - clangd \ - gdb \ php \ - gopls \ - htop \ - ranger \ - nano \ - fzf \ - bat \ - less \ - tree \ - ripgrep - -# RUN apk update -# RUN apk add --no-cache \ -# nodejs \ -# npm \ -# bash \ -# bash-completion \ -# curl \ -# clang \ -# pkgconf \ -# make \ -# git \ -# gopls \ -# gobject-introspection-dev \ -# cairo-dev + lua5.4 \ + gdb \ + clangd \ + gopls RUN curl -fsSL https://pyenv.run | bash RUN pyenv install ${PYTHON_VERSION} && pyenv global ${PYTHON_VERSION} && pyenv local ${PYTHON_VERSION} diff --git a/README.md b/README.md index e4ccfa3..b1a651b 100644 --- a/README.md +++ b/README.md @@ -24,22 +24,23 @@ It supports various language servers concurrently and handles language-specific ##### Option 1: 1. Install Podman. -2. Create `opt/` folder in `Docker/` and add any additional programs (lsps) there. -3. Configure the desired language servers in `src/defaultServers.js`. -3. Configure the start script at `Docker/scripts/start.sh` with any additional env args or mount points. -4. Run from `Newton-LSP/` `Docker/build.sh` . -5. Run `Docker/scripts/start.sh` -6. Connect to the WebSocket server on `ws://localhost:9999/`. -7. Transmit LSP messages via the WebSocket connection. +1. Create base image from [itdominator-base-image](https://code.itdominator.com/itdominator/Podman/src/branch/main/itdominator-base-image) +1. Create `opt/` folder in `Docker/` and add any additional programs (lsps) there. +1. Configure the desired language servers in `src/defaultServers.js`. +1. Configure the start script at `Docker/scripts/start.sh` with any additional env args or mount points. +1. Run from `Newton-LSP/` `Docker/build.sh` . +1. Run `Docker/scripts/start.sh` +1. Connect to the WebSocket server on `ws://localhost:9999/`. +1. Transmit LSP messages via the WebSocket connection. ##### Option 2: 1. Install Node.js. -2. Run 'npm install'. -3. Configure the desired language servers in `defaultServers.js`. -4. Run the script: `npm run start || start-verbose`. -5. Connect to the WebSocket server on `ws://localhost:9999/`. -6. Transmit LSP messages via the WebSocket connection. +1. Run 'npm install'. +1. Configure the desired language servers in `defaultServers.js`. +1. Run the script: `npm run start || start-verbose`. +1. Connect to the WebSocket server on `ws://localhost:9999/`. +1. Transmit LSP messages via the WebSocket connection. ## Configuration