Add Python build images

These images are designed to build projects which are not in the same
repository (i.e. build a Glance image for a project that consumes it).

Change-Id: Iab6aa131fc77b072fdce0f635a42d870ef41a68a
This commit is contained in:
Mohammed Naser 2020-07-21 16:07:52 -04:00
parent 46e918870d
commit 7591aeae4e
4 changed files with 122 additions and 0 deletions

25
python-base/Dockerfile Normal file
View File

@ -0,0 +1,25 @@
# Copyright (c) 2020 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM python:3.7-slim
RUN pip --no-cache-dir install bindep
ONBUILD COPY --from=builder /output /output
ONBUILD COPY --from=builder /etc/apt /etc/apt
ONBUILD RUN apt-get update && \
apt-get install -y $(bindep -b -f /output/bindep.txt) && \
pip install --no-index /output/wheels/*.whl && \
apt-get clean all

34
python-builder/Dockerfile Normal file
View File

@ -0,0 +1,34 @@
# Copyright (c) 2020 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM python:3.7-slim
RUN apt-get update && \
apt-get install -y git && \
pip install bindep
ONBUILD ADD . /build
ONBUILD ADD bindep.txt /output/bindep.txt
ONBUILD RUN test -f /build/setup-repos.sh && /build/setup-repos.sh || true
ONBUILD RUN apt-get update && \
apt-get install -y $(bindep -b -f /build/bindep.txt compile)
ONBUILD RUN test -f "/build/build-requirements.txt" && \
pip install --constraint=/build/constraints.txt \
--requirement=/build/build-requirements.txt || true
ONBUILD RUN pip wheel --wheel-dir=/output/wheels \
--constraint=/build/constraints.txt \
--requirement=/build/requirements.txt

31
zuul.d/python-base.yaml Normal file
View File

@ -0,0 +1,31 @@
- job:
name: docker-images:build:python-base
parent: vexxhost-build-docker-image
provides: docker-images:image:python-base
vars: &id001
docker_images:
- context: python-base/
repository: vexxhost/python-base
files: &id002
- ^python-base/.*
- job:
name: docker-images:upload:python-base
parent: vexxhost-upload-docker-image
provides: docker-images:image:python-base
vars: *id001
files: *id002
- job:
name: docker-images:promote:python-base
parent: vexxhost-promote-docker-image
vars: *id001
files: *id002
- project:
check:
jobs:
- docker-images:build:python-base
gate:
jobs:
- docker-images:upload:python-base
promote:
jobs:
- docker-images:promote:python-base

View File

@ -0,0 +1,32 @@
- job:
name: docker-images:build:python-builder
parent: vexxhost-build-docker-image
provides: docker-images:image:python-builder
vars: &id001
docker_images:
- context: python-builder/
repository: vexxhost/python-builder
files: &id002
- ^python-builder/.*
- job:
name: docker-images:upload:python-builder
parent: vexxhost-upload-docker-image
provides: docker-images:image:python-builder
vars: *id001
files: *id002
- job:
name: docker-images:promote:python-builder
parent: vexxhost-promote-docker-image
vars: *id001
files: *id002
- project:
check:
jobs:
- docker-images:build:python-builder
gate:
jobs:
- docker-images:upload:python-builder
promote:
jobs:
- docker-images:promote:python-builder