docker build
ci/woodpecker/manual/woodpecker Pipeline failed Details

This commit is contained in:
Paul J Stevens 2024-01-28 15:23:44 +01:00
parent c992fed3e6
commit 067b2c22b6
11 changed files with 88 additions and 19 deletions

View File

@ -6,12 +6,13 @@
!etc/
!src/
!tests/
!exampledata/
!frontend/bower_components/
!frontend/dist/
!frontend/images/
!frontend/index.html
!pyproject.toml
!pdm.lock
!README.md
!scripts/
# And always ignore all *.pyc files
*.pyc

24
.woodpecker.yml Normal file
View File

@ -0,0 +1,24 @@
steps:
build:
image: ubuntu:latest
environment:
- DEBIAN_FRONTEND=noninteractive
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- apt-get update && apt-get install -y make docker-buildx curl file unzip
- python -mpip install setuptools_scm
- make build
push:
image: ubuntu:latest
environment:
- DEBIAN_FRONTEND=noninteractive
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- apt-get update && apt-get install -y make docker-buildx
- make push
secrets: [ registry_password ]
when:
- event: tag

View File

@ -1,8 +1,12 @@
FROM python:3.11-slim
RUN apt-get update && apt-get install -y gcc libpq-dev
RUN apt-get update && apt-get install -y gcc libpq-dev libpq5
RUN pip install -U pdm
ADD . /app/
WORKDIR /app/
ARG PROJECT_VERSION=
ENV SETUPTOOLS_SCM_PRETEND_VERSION=${PROJECT_VERSION}
RUN pdm install
RUN apt-get remove -y gcc libpq-dev && apt-get autoremove -y
ENTRYPOINT ["pdm","run","trytond", "-c", "/app/docker.ini", "-v", "-d", "bij1"]
ENTRYPOINT ["pdm","run","trytond", "-c", "/app/etc/docker.ini", "-v", "-d", "bij1"]

View File

@ -4,6 +4,12 @@ SAO=6.6.1
DBNAME=bij1
build: frontend
bash ./image.sh build
push:
bash ./image.sh push
install:
pdm install -d
pre-commit install

View File

@ -1,12 +0,0 @@
PROJECT="bij1.erp"
VERSION=$(python -m setuptools_scm)
export DOCKER_IMAGE="$PROJECT:$VERSION"
build () {
DOCKER_BUILDKIT=1 docker build \
--build-arg BUILDKIT_INLINE_CACHE=1 \
--tag $DOCKER_IMAGE .
}
build

6
etc/docker.ini Normal file
View File

@ -0,0 +1,6 @@
[database]
path = data/
[web]
root = frontend/
listen = 0.0.0.0:8000

View File

@ -1 +1,3 @@
node_modules/
dist/
bower_components/

View File

@ -7,5 +7,5 @@ COPY . /code/
WORKDIR /code/
RUN chown -R node /code/
USER node
RUN yarn install && node_modules/grunt-cli/bin/grunt
RUN npm install --production --legacy-peer-deps

View File

@ -8,6 +8,9 @@ build () {
CONTAINER_ID=$(docker create $DOCKER_IMAGE)
docker cp $CONTAINER_ID:/code/dist .
docker cp $CONTAINER_ID:/code/bower_components .
docker cp $CONTAINER_ID:/code/index.html .
docker cp $CONTAINER_ID:/code/images .
docker rm -v $CONTAINER_ID
}

36
image.sh Executable file
View File

@ -0,0 +1,36 @@
export PROJECT="bij1.erp"
export VERSION=$(python -m setuptools_scm)
export DOCKER_IMAGE="$PROJECT:$VERSION"
export DOCKER_REGISTRY="registry.bij1.org"
export DOCKER_BUILDKIT=1
export TAG_VERSION="$DOCKER_REGISTRY/$DOCKER_IMAGE"
export TAG_LATEST="$DOCKER_REGISTRY/${PROJECT}:latest"
build () {
echo "build ${DOCKER_IMAGE}"
docker build \
--build-arg PROJECT_VERSION=$VERSION \
--tag $DOCKER_IMAGE .
docker tag $DOCKER_IMAGE $TAG_VERSION
docker tag $DOCKER_IMAGE $TAG_LATEST
docker tag $DOCKER_IMAGE $PROJECT:latest
}
push() {
docker login -p ${REGISTRY_PASSWORD} -u docker $DOCKER_REGISTRY
docker push $TAG_VERSION
docker push $TAG_LATEST
}
case "$1" in
build)
build
;;
push)
push
;;
esac

View File

@ -18,13 +18,11 @@ dependencies = [
"pyairtable>=2.2.1",
"setuptools-scm>=8.0.4",
"marshmallow>=3.20.1",
"setuptools>=69.0.3",
"schwifty>=2023.11.2",
"fastapi>=0.108.0",
"uvicorn>=0.25.0",
"gunicorn>=21.2.0",
"supervisor>=4.2.5",
"pre-commit>=3.6.0",
]
requires-python = ">=3.11"
readme = "README.md"
@ -42,6 +40,7 @@ source = "scm"
[tool.pdm.dev-dependencies]
dev = [
"pre-commit>=3.6.0",
"pytest-trytond>=0.1.0",
]