push-umtslxtpqxls #1

Merged
eric merged 5 commits from push-umtslxtpqxls into main 2026-01-31 10:36:47 +01:00
4 changed files with 55 additions and 5 deletions
Showing only changes of commit 62b53f26f0 - Show all commits

View File

@@ -5,6 +5,9 @@ FROM python:3.11-slim
RUN echo "deb http://deb.debian.org/debian testing main" \
> /etc/apt/sources.list.d/testing.list
# Création d'un utilisateur programmeur avec UID 1000 et home dans /home/programmer
RUN useradd -u 1000 -m -d /home/programmer -s /bin/bash programmer
WORKDIR /app
# Installer les outils de développement Go et Rust
@@ -24,7 +27,8 @@ RUN apt-get update && \
black \
flake8 \
mypy \
isort
isort \
logrotate
COPY tools tools
@@ -50,12 +54,30 @@ RUN cargo binstall --strategies crate-meta-data jj-cli
# Installer le SDK MCP Python
RUN pip install --no-cache-dir ruff fastmcp ipython
RUN curl -fsSL https://opencode.ai/install | bash \
&& mv /root/.opencode/bin/opencode /usr/local/bin/
# Copier le serveur
COPY src .
# Copier le script de démarrage
COPY docker_startup.sh .
COPY opencode.json ~/.config/opencode
# Exposer le port
EXPOSE 6666
EXPOSE 7860
ENV OLLAMA_ADDR="http://host.docker.internal:11434"
# Lancer le serveur
CMD ["python", "./PMOCrazyCoder.py"]
# Rendre le script exécutable et lancer le serveur
RUN chmod +x docker_startup.sh
RUN mkdir /sandbox /log \
&& chown programmer:programmer /sandbox /log
# Création de la configuration logrotate
COPY logrotate-config /etc/logrotate.d/mcp-logs
# Changer l'utilisateur pour programmeur
USER programmer
RUN mkdir -p /home/programmer/.config/opencode
COPY opencode.json /home/programmer/.config/opencode
CMD ["./docker_startup.sh"]

View File

@@ -5,7 +5,8 @@ IMAGE_NAME = pmo_crazy_coder
TAG = latest
PORT = 7860
SANDBOX_VOLUME = "./bac_a_sable"
DOCKER_RUN_COMMON = --rm -p $(PORT):$(PORT) -v $(SANDBOX_VOLUME):/sandbox
CONTAINER_NAME = $(IMAGE_NAME)
DOCKER_RUN_COMMON = --rm -p $(PORT):$(PORT) -v $(SANDBOX_VOLUME):/sandbox --name $(CONTAINER_NAME)
FULL_IMAGE_NAME = $(IMAGE_NAME):$(TAG)
all: run
@@ -25,6 +26,7 @@ build: stamp/build_PMOCrazyCoder
run: build $(SANDBOX_VOLUME)
@echo Launching the PMOCrazyCoder MCP server
@docker run $(DOCKER_RUN_COMMON) \
-it \
$(FULL_IMAGE_NAME)
debug: build $(SANDBOX_VOLUME)

13
docker_startup.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
# Docker Startup Script for MCP Server and Open Code
# This script launches the MCP server in background and starts Open Code in interactive mode
echo "Starting MCP server in background..."
python3 PMOCrazyCoder.py >/log/server.log 2>&1 &
# Give the server a moment to start
sleep 3
echo "Starting Open Code in interactive mode..."
opencode

13
logrotate-config Normal file
View File

@@ -0,0 +1,13 @@
/log/server.log /log/opencode.log {
daily
rotate 5
compress
delaycompress
missingok
notifempty
create 644 programmer programmer
sharedscripts
postrotate
# No restart needed for log files
endscript
}