Externalized parts of Docker file to base image; Updated README

This commit is contained in:
2026-04-18 21:22:07 -05:00
parent 75a0d62655
commit 5e05ffea16
2 changed files with 21 additions and 64 deletions

View File

@@ -1,16 +1,14 @@
# 1. A: Define a base image # 1. A: Define a base image
# FROM scratch FROM itdominator-base
# FROM busybox
# FROM alpine:3.22.1
# FROM alpine:latest
# FROM python:3.12
FROM debian:bookworm-slim
# 1. B: Set ENV Variables # 1. B: Set ENV Variables
ENV NVM_VERSION=0.40.3 ENV NVM_VERSION=0.40.3
ENV NODE_VERSION=24.9.0 ENV NODE_VERSION=24.9.0
ENV PYTHON_VERSION=3.12.12 ENV PYTHON_VERSION=3.12.12
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV NVM_DIR="/root/.nvm" ENV NVM_DIR="/root/.nvm"
ENV PYENV_ROOT="/opt/pyenv" ENV PYENV_ROOT="/opt/pyenv"
ENV JEXTRACT_PATH="/opt/jextract" ENV JEXTRACT_PATH="/opt/jextract"
@@ -28,9 +26,6 @@ ENV PATH="${MAVEN_PATH}/bin:${PATH}"
ENV PATH="${JAVA_HOME}/bin:${PATH}" ENV PATH="${JAVA_HOME}/bin:${PATH}"
ENV PATH="/opt:${PATH}" ENV PATH="/opt:${PATH}"
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# 2. Set the working directory inside the container # 2. Set the working directory inside the container
WORKDIR /app WORKDIR /app
@@ -49,51 +44,12 @@ RUN apt-get update
RUN apt-get install -y \ RUN apt-get install -y \
--no-install-recommends \ --no-install-recommends \
--no-install-suggests \ --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 \ clang \
clangd \
gdb \
php \ php \
gopls \ lua5.4 \
htop \ gdb \
ranger \ clangd \
nano \ gopls
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
RUN curl -fsSL https://pyenv.run | bash RUN curl -fsSL https://pyenv.run | bash
RUN pyenv install ${PYTHON_VERSION} && pyenv global ${PYTHON_VERSION} && pyenv local ${PYTHON_VERSION} RUN pyenv install ${PYTHON_VERSION} && pyenv global ${PYTHON_VERSION} && pyenv local ${PYTHON_VERSION}

View File

@@ -24,22 +24,23 @@ It supports various language servers concurrently and handles language-specific
##### Option 1: ##### Option 1:
1. Install Podman. 1. Install Podman.
2. Create `opt/` folder in `Docker/` and add any additional programs (lsps) there. 1. Create base image from [itdominator-base-image](https://code.itdominator.com/itdominator/Podman/src/branch/main/itdominator-base-image)
3. Configure the desired language servers in `src/defaultServers.js`. 1. Create `opt/` folder in `Docker/` and add any additional programs (lsps) there.
3. Configure the start script at `Docker/scripts/start.sh` with any additional env args or mount points. 1. Configure the desired language servers in `src/defaultServers.js`.
4. Run from `Newton-LSP/` `Docker/build.sh` . 1. Configure the start script at `Docker/scripts/start.sh` with any additional env args or mount points.
5. Run `Docker/scripts/start.sh` 1. Run from `Newton-LSP/` `Docker/build.sh` .
6. Connect to the WebSocket server on `ws://localhost:9999/<language_endpoint>`. 1. Run `Docker/scripts/start.sh`
7. Transmit LSP messages via the WebSocket connection. 1. Connect to the WebSocket server on `ws://localhost:9999/<language_endpoint>`.
1. Transmit LSP messages via the WebSocket connection.
##### Option 2: ##### Option 2:
1. Install Node.js. 1. Install Node.js.
2. Run 'npm install'. 1. Run 'npm install'.
3. Configure the desired language servers in `defaultServers.js`. 1. Configure the desired language servers in `defaultServers.js`.
4. Run the script: `npm run start || start-verbose`. 1. Run the script: `npm run start || start-verbose`.
5. Connect to the WebSocket server on `ws://localhost:9999/<language_endpoint>`. 1. Connect to the WebSocket server on `ws://localhost:9999/<language_endpoint>`.
6. Transmit LSP messages via the WebSocket connection. 1. Transmit LSP messages via the WebSocket connection.
## Configuration ## Configuration