Build images with Dockerfile instead of pbrx

Use the opendevorg/python-builder image to build nodepool images
with a Dockerfile and multi-stage builds.

bindep wasn't installing gcc for dpkg. Remove the platform restrictions
for it.

Change-Id: I0282b75ffad3d0ae1b589381010a3d4273fceb07
This commit is contained in:
James E. Blair 2019-01-24 08:02:04 -08:00 committed by Monty Taylor
parent 44ae87c310
commit f274c0f6bf
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
4 changed files with 97 additions and 11 deletions

3
.dockerignore Normal file
View File

@ -0,0 +1,3 @@
.mypy_cache
.stestr
.tox

View File

@ -155,6 +155,61 @@
required-projects:
- openstack-infra/nodepool
- secret:
name: nodepool-dockerhub
data:
username: zuulzuul
password: !encrypted/pkcs1-oaep
- VV5m4XbsYvAz0/7T+WoIypvD3ijRsPYrGo4O5JuOHt6TX14s9B1KddeMwnabEEKapPdbb
cwqbzFKoHRMi8DdXiDKxrgbTSC1jb3BvKq7XE0/xF4Bq2dM+r3yDnXS6a7BuijSqFSiMG
/9bf0jqEAWXWCvbYUAxKOklJIRLjcKywCP5CulmW6EV8f1Iya8Y7UGpjGyL34FVQuc52Y
5MLp+Dra95pvBJMgikbu7LtMPCXOMctUFBpwNArCjWKGhz00UZwyAmsbPPHwQWb+884ZP
v9zi2FuRAL+rn4DRVwyIw28ZdCEr5F5EkZon3lSIhikhdQIyHPtW8VwMJTL4RxBdmgcEt
+zZBbLlOU+0AHPGLlO/yQNvHeSzwY9pe2oIGuqSu3h6zp6Y0NIE/Q0VpiIXWpOAnLOmno
uOd3j9tZ1beol2mg4Yk7rOaXu1Fvtfhd1K3LpLzEbiGzCMIEZuFHU2ZInAbUmtm0BtbDa
/bYvI9dB/uqA2xgse5rVMa++v3AfWJTJhFY/wBU4fHOWlFBUZKFuSoijUcWMfnfMMyU2B
A5CQKhv4Wmtzbvo/oneYkwFOTYaPNj2DS0BcFJFkR8FZDYmTBPnKoBH5wpwwnrzPOpCMa
L21z+Vp1Vce1XCsaOduMrmZDvuQcK1YOKIIUeElAQw8GuwTfcXqekoPvp54SeE=
- job:
name: nodepool-build-image
parent: build-docker-image
description: Build Docker images.
vars: &nodepool_image_vars
docker_images:
- context: .
repository: zuul/nodepool-base
target: nodepool-base
- context: .
repository: zuul/nodepool
target: nodepool
- context: .
repository: zuul/nodepool-launcher
target: nodepool-launcher
- context: .
repository: zuul/nodepool-builder
target: nodepool-builder
- job:
name: nodepool-upload-image
parent: upload-docker-image
description: Build Docker images and upload to Docker Hub.
vars: *nodepool_image_vars
secrets:
- name: docker_credentials
secret: nodepool-dockerhub
pass-to-parent: true
- job:
name: nodepool-promote-image
parent: promote-docker-image
description: Promote previously uploaded Docker images.
vars: *nodepool_image_vars
secrets:
- name: docker_credentials
secret: nodepool-dockerhub
pass-to-parent: true
- project:
check:
jobs:
@ -171,9 +226,7 @@
voting: false
- nodepool-functional-k8s
- nodepool-functional-openshift
- pbrx-build-container-images:
vars:
pbrx_prefix: zuul
- nodepool-build-image
- zuul-quick-start
gate:
jobs:
@ -182,17 +235,14 @@
- tox-py35
- tox-py36:
nodeset: ubuntu-bionic
- pbrx-build-container-images:
vars:
pbrx_prefix: zuul
- zuul-quick-start
- nodepool-upload-image
post:
jobs:
- publish-zuul-docs
- openstackzuul-pbrx-push-container-images:
vars:
pbrx_prefix: zuul
promote:
jobs:
- nodepool-promote-image
experimental:
jobs:
- nodepool-functional-py35-debian-src

33
Dockerfile Normal file
View File

@ -0,0 +1,33 @@
# Copyright (c) 2019 Red Hat, 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 opendevorg/python-builder as builder
COPY . /tmp/src
RUN assemble
FROM opendevorg/python-base as nodepool-base
COPY --from=builder /output/ /output
RUN /output/install-from-bindep
FROM nodepool-base as nodepool
CMD ["/usr/local/bin/nodepool"]
FROM nodepool-base as nodepool-launcher
CMD ["/usr/local/bin/nodepool-launcher"]
FROM nodepool-base as nodepool-builder
CMD ["/usr/local/bin/nodepool-builder"]

View File

@ -1,7 +1,7 @@
# This is a cross-platform list tracking distribution packages needed by tests;
# see http://docs.openstack.org/infra/bindep/ for additional information.
gcc [compile test platform:rpm platform:apk]
gcc [compile test]
libffi-devel [platform:rpm]
libffi-dev [platform:dpkg]
libffi-dev [compile test platform:apk]