Co-authored-by: openhands <openhands@all-hands.dev> Reviewed-on: https://codeberg.org/johba/harb/pulls/84
50 lines
1.5 KiB
Text
50 lines
1.5 KiB
Text
# syntax=docker/dockerfile:1.6
|
|
# Composite integration image that bundles the entire Harb stack for E2E testing
|
|
# This image runs docker-compose internally to orchestrate all services
|
|
|
|
FROM docker:27-dind
|
|
|
|
LABEL org.opencontainers.image.source="https://codeberg.org/johba/harb-ci"
|
|
LABEL org.opencontainers.image.description="Harb Stack integration container for E2E CI tests"
|
|
|
|
ENV DOCKER_TLS_CERTDIR="" \
|
|
COMPOSE_PROJECT_NAME=harb-ci \
|
|
HARB_ENV=BASE_SEPOLIA_LOCAL_FORK \
|
|
SKIP_WATCH=1
|
|
|
|
# Install docker-compose, bash, curl, and other essentials
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
curl \
|
|
git \
|
|
docker-cli-compose \
|
|
shadow \
|
|
su-exec
|
|
|
|
# Create a non-root user for running the stack
|
|
RUN addgroup -g 1000 harb && \
|
|
adduser -D -u 1000 -G harb harb
|
|
|
|
WORKDIR /workspace
|
|
|
|
# Copy the entire project (will be mounted at runtime in CI, but needed for standalone usage)
|
|
COPY --chown=harb:harb . /workspace/
|
|
|
|
# Pre-build kraiken-lib to speed up startup
|
|
RUN cd /workspace && \
|
|
if [ -f scripts/build-kraiken-lib.sh ]; then \
|
|
./scripts/build-kraiken-lib.sh || echo "kraiken-lib build skipped"; \
|
|
fi
|
|
|
|
# Healthcheck: verify the stack is responding via Caddy
|
|
HEALTHCHECK --interval=5s --timeout=3s --retries=30 --start-period=120s \
|
|
CMD curl -f http://localhost:8081/api/graphql || exit 1
|
|
|
|
# Entrypoint script to start Docker daemon and the stack
|
|
COPY docker/integration-entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
EXPOSE 8081
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
CMD ["bash"]
|