Enhance Docker setup with new tools and configurations

Update Dockerfile to install additional tools (orla, rust-analyzer), configure user permissions, and set up bash completion.

Update docker-entrypoint.sh to export new environment variables and configure MCP language servers for multiple languages (Go, Python, Rust, TypeScript) with proper workspace and LSP settings.

Add new documentation file AGENTS.md with development guidelines and security rules.

Add pyproject.toml for Python project configuration with dependencies and dev tools.

Add src/PMOCrazyCoder.py as a new MCP server implementation with example tools.
This commit is contained in:
2026-02-21 21:04:13 +01:00
parent ea29352f7a
commit 9c914b989b
5 changed files with 182 additions and 37 deletions

View File

@@ -38,23 +38,36 @@ RUN curl -fsSL https://opencode.ai/install | bash && \
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
RUN go install golang.org/x/tools/gopls@latest \
&& go install github.com/isaacphi/mcp-language-server@latest \
&& go install github.com/dorcha-inc/orla/cmd/orla@latest
RUN mkdir -p /etc/bash_completion.d \
&& orla completion bash > /etc/bash_completion.d/orla \
&& jj util completion bash > /etc/bash_completion.d/jj
RUN rustup component add rust-analyzer --toolchain nightly
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 \
--shell /bin/bash
--gid $USER_GID \
-m $USERNAME \
--shell /bin/bash && \
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME && \
chmod 440 /etc/sudoers.d/$USERNAME
COPY docker-entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
RUN mkdir -p /home/${USERNAME}/.config \
&& chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.config
COPY --chown=${USERNAME}:${USERNAME} opencode /home/${USERNAME}/.config/opencode
USER $USERNAME
WORKDIR /workspace
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["/bin/bash"]