Update Dockerfile and entrypoint for enhanced development tools and configuration
Update Dockerfile to include clangd, replace npm packages with pyright and typescript-language-server, add GOPATH and GOBIN environment variables, and improve user creation. Update docker-entrypoint.sh to export environment variables, configure opencode.json, and set up MCP language server with proper configuration files.
This commit is contained in:
18
Dockerfile
18
Dockerfile
@@ -1,7 +1,7 @@
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
clang llvm-dev libclang-dev pkg-config build-essential git make curl nodejs npm \
|
||||
clang clangd llvm-dev libclang-dev pkg-config build-essential git make curl nodejs npm \
|
||||
pylint black flake8 mypy isort logrotate sudo cmake libicu-dev zlib1g-dev \
|
||||
libcurl4-openssl-dev libssl-dev ruby-dev jq python3 python3-pip golang-go rustc cargo \
|
||||
r-base sqlite3 wget bash zsh libgit2-dev \
|
||||
@@ -22,7 +22,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable && \
|
||||
rustup component add rustfmt clippy rust-src rust-docs && \
|
||||
cargo install cargo-edit cargo-watch cargo-outdated cargo-make cargo-binstall
|
||||
|
||||
RUN npm install -g typescript tsc @types/node eslint prettier
|
||||
RUN npm install -g typescript tsc @types/node eslint prettier pyright typescript-language-server
|
||||
|
||||
RUN cargo binstall --strategies crate-meta-data jj-cli
|
||||
|
||||
@@ -36,17 +36,19 @@ RUN curl -fsSL https://opencode.ai/install | bash && \
|
||||
mkdir -p /root/.config/opencode && \
|
||||
mv /root/.opencode/bin/opencode /usr/local/bin/
|
||||
|
||||
COPY opt/bin/ /opt/bin/
|
||||
COPY opt/dev-tools/ /opt/dev-tools/
|
||||
COPY opt/lm-client/ /opt/lm-client/
|
||||
|
||||
ENV PATH="/opt/bin:/opt/dev-tools:/opt/lm-client:${PATH}"
|
||||
ENV GOPATH=/usr/local/go
|
||||
ENV GOBIN=/usr/local/go/bin
|
||||
RUN go install golang.org/x/tools/gopls@latest
|
||||
RUN go install github.com/isaacphi/mcp-language-server@latest
|
||||
|
||||
ARG USERNAME=devuser
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=1000
|
||||
RUN groupadd --gid $USER_GID $USERNAME && \
|
||||
useradd --uid $USER_UID --gid $USER_GID -m $USERNAME
|
||||
useradd --uid $USER_UID \
|
||||
--gid $USER_GID \
|
||||
-m $USERNAME \
|
||||
--shell /bin/bash
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||
|
||||
Reference in New Issue
Block a user