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
# 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}

View File

@@ -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/<language_endpoint>`.
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/<language_endpoint>`.
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/<language_endpoint>`.
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/<language_endpoint>`.
1. Transmit LSP messages via the WebSocket connection.
## Configuration