Externalized parts of Docker file to base image; Updated README
This commit is contained in:
@@ -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}
|
||||||
|
|||||||
25
README.md
25
README.md
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user