From 7591aeae4ece495ec8c1455a99c68e1050c63114 Mon Sep 17 00:00:00 2001 From: Mohammed Naser Date: Tue, 21 Jul 2020 16:07:52 -0400 Subject: [PATCH] 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 --- python-base/Dockerfile | 25 +++++++++++++++++++++++++ python-builder/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ zuul.d/python-base.yaml | 31 +++++++++++++++++++++++++++++++ zuul.d/python-builder.yaml | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 python-base/Dockerfile create mode 100644 python-builder/Dockerfile create mode 100644 zuul.d/python-base.yaml create mode 100644 zuul.d/python-builder.yaml diff --git a/python-base/Dockerfile b/python-base/Dockerfile new file mode 100644 index 0000000..74828b3 --- /dev/null +++ b/python-base/Dockerfile @@ -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 diff --git a/python-builder/Dockerfile b/python-builder/Dockerfile new file mode 100644 index 0000000..27fa119 --- /dev/null +++ b/python-builder/Dockerfile @@ -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 diff --git a/zuul.d/python-base.yaml b/zuul.d/python-base.yaml new file mode 100644 index 0000000..2a98efb --- /dev/null +++ b/zuul.d/python-base.yaml @@ -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 diff --git a/zuul.d/python-builder.yaml b/zuul.d/python-builder.yaml new file mode 100644 index 0000000..5b38fd1 --- /dev/null +++ b/zuul.d/python-builder.yaml @@ -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 +