feat: init script

This commit is contained in:
Matteo Pietro Dazzi 2026-02-22 18:34:55 +01:00
parent c6865fe852
commit d99dc3d0c6
5 changed files with 24 additions and 2 deletions

View file

@ -29,6 +29,9 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
# Copy binary # Copy binary
COPY --from=builder /src/build/picoclaw /usr/local/bin/picoclaw COPY --from=builder /src/build/picoclaw /usr/local/bin/picoclaw
# Copy container init scripts
COPY container/* /usr/local/bin/
# Create non-root user and group # Create non-root user and group
RUN addgroup -g 1000 picoclaw && \ RUN addgroup -g 1000 picoclaw && \
adduser -D -u 1000 -G picoclaw picoclaw adduser -D -u 1000 -G picoclaw picoclaw
@ -39,5 +42,5 @@ USER picoclaw
# Run onboard to create initial directories and config # Run onboard to create initial directories and config
RUN /usr/local/bin/picoclaw onboard RUN /usr/local/bin/picoclaw onboard
ENTRYPOINT ["picoclaw"] ENTRYPOINT ["entrypoint"]
CMD ["gateway"] CMD ["gateway"]

View file

@ -5,6 +5,7 @@ ARG TARGETPLATFORM
RUN apk add --no-cache ca-certificates tzdata RUN apk add --no-cache ca-certificates tzdata
COPY $TARGETPLATFORM/picoclaw /usr/local/bin/picoclaw COPY $TARGETPLATFORM/picoclaw /usr/local/bin/picoclaw
COPY container/* /usr/local/bin/
ENTRYPOINT ["picoclaw"] ENTRYPOINT ["entrypoint"]
CMD ["gateway"] CMD ["gateway"]

3
container/entrypoint Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
init && picoclaw "$@"

3
container/init Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
echo "No init file configured, skipping..."

View file

@ -1,3 +1,7 @@
configs:
init_script:
file: /path/to/your/init/script
services: services:
# ───────────────────────────────────────────── # ─────────────────────────────────────────────
# PicoClaw Agent (one-shot query) # PicoClaw Agent (one-shot query)
@ -16,6 +20,10 @@ services:
volumes: volumes:
- ./config/config.json:/home/picoclaw/.picoclaw/config.json:ro - ./config/config.json:/home/picoclaw/.picoclaw/config.json:ro
- picoclaw-workspace:/home/picoclaw/.picoclaw/workspace - picoclaw-workspace:/home/picoclaw/.picoclaw/workspace
configs:
- source: init_script
target: /usr/local/bin/init
mode: 0777
entrypoint: ["picoclaw", "agent"] entrypoint: ["picoclaw", "agent"]
stdin_open: true stdin_open: true
tty: true tty: true
@ -40,6 +48,10 @@ services:
- ./config/config.json:/home/picoclaw/.picoclaw/config.json:ro - ./config/config.json:/home/picoclaw/.picoclaw/config.json:ro
# Persistent workspace (sessions, memory, logs) # Persistent workspace (sessions, memory, logs)
- picoclaw-workspace:/home/picoclaw/.picoclaw/workspace - picoclaw-workspace:/home/picoclaw/.picoclaw/workspace
configs:
- source: init_script
target: /usr/local/bin/init
mode: 0777
command: ["gateway"] command: ["gateway"]
volumes: volumes: