pygomx/compose.yaml
2026-03-12 09:10:29 +01:00

138 lines
3.6 KiB
YAML

services:
dev:
build:
context: .
dockerfile: Containerfile.debian
target: develop
working_dir: /smal
volumes:
- ./smal:/smal:ro
- ./work:/work
demobot:
build:
context: .
dockerfile: Containerfile.debian
target: demobot
command: demobot
volumes:
- demobot_data:/demobot
restart: unless-stopped
dind:
build:
context: .
pull: true
dockerfile_inline: |
# syntax=docker/dockerfile:1
FROM docker.io/library/docker:dind-rootless
USER root
RUN mkdir /woodpecker && chmod 0777 /woodpecker
USER rootless
RUN mkdir -p /home/rootless/dockersock
command: ['dockerd', '-H', 'unix:///home/rootless/dockersock/docker.sock', '--tls=false']
privileged: true
restart: unless-stopped
volumes:
- dind-run:/home/rootless/dockersock
- dind-data:/home/rootless/.local/share/docker
- .:/woodpecker
environment:
DOCKER_HOST: 'unix:///home/rootless/dockersock/docker.sock'
healthcheck:
test: ["CMD-SHELL", "docker", "info"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
go-build-test:
build:
context: .
pull: true
dockerfile_inline: |
# syntax=docker/dockerfile:1
FROM docker.io/golang:1.26 AS gobuild
WORKDIR /woodpeckerhack
RUN git clone -b cli-exec-matrix-fix https://codeberg.org/saces/woodpecker.git .
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg \
make build-cli
FROM docker.io/woodpeckerci/woodpecker-cli:next-alpine
COPY --from=gobuild /woodpeckerhack/dist/woodpecker-cli /bin/
USER root
RUN <<EOF
set -e
addgroup -g 2375 -S docker
addgroup -g 102374 -S dind
addgroup woodpecker docker
addgroup woodpecker dind
EOF
USER woodpecker
command: exec .woodpecker/go-buildtest.yaml
restart: no
environment:
DOCKER_HOST: 'unix:///var/run/dind/docker.sock'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- dind-run:/var/run/dind
- .:/woodpecker:ro
depends_on:
dind:
condition: service_healthy
manylinux:
build:
context: .
pull: true
dockerfile_inline: |
# syntax=docker/dockerfile:1
FROM quay.io/pypa/manylinux_2_28_x86_64:latest
RUN dnf -y install golang
ENV PIP_ROOT_USER_ACTION=ignore
RUN <<EOF
set -eux
for INTERPRETER in cpython3.10; do
$${INTERPRETER} -m pip install --upgrade pip
$${INTERPRETER} -m pip install --upgrade setuptools wheel auditwheel cffi
done
for dir in pygomx-work .cache go; do
mkdir /$${dir}
chmod 777 /$${dir}
done
EOF
volumes:
- .:/pygomx-src:ro
- type: bind
source: ./dist
target: /pygomx-dist
bind:
create_host_path: false
user: 1000:1000
working_dir: /pygomx-work
command:
- /bin/bash
- -c
- |
set -euo pipefail
# git clone /pygomx-src .
cp -r /pygomx-src/* .
cd pygomx
export PYGOMX_BUILD_MODE=static
export PYGOMX_OLM_FLAVOR=goolm
for INTERPRETER in cpython3.10; do
$${INTERPRETER} -m build --wheel --outdir /pygomx-dist/$${INTERPRETER}
$${INTERPRETER} -m auditwheel repair --wheel-dir /pygomx-dist/out /pygomx-dist/$${INTERPRETER}/*.whl
done
volumes:
demobot_data:
dind-run:
dind-data: