From 605da70d6dc712421c7b45defb7811b33041a8e3 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Tue, 16 Oct 2018 16:13:06 -0500 Subject: [PATCH] Build container images We need to mark several things in the bindep file with the compile tag so that we don't install them into the final image. Also, clean up some of the extra things in the bindep file that are almost certainly not needed. Change-Id: I6e42d0191fd1db8482a4a0fbe208b669ef33bfee --- .zuul.yaml | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 42 +++++++++++++++++++++++++++++++ bindep.txt | 58 ++++++++++++++++++------------------------- 3 files changed, 139 insertions(+), 34 deletions(-) create mode 100644 Dockerfile diff --git a/.zuul.yaml b/.zuul.yaml index 57602cf0..4ae1d6d0 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -6,6 +6,72 @@ vars: tox_envlist: sqlite +- secret: + name: storyboard-opendev-dockerhub + data: + username: opendevzuul + password: !encrypted/pkcs1-oaep + - TLIOKBC/P2pYpJc/UKFBxJx+Q11yrVKrT99pqwMM5IbUgPGIu1ssA90QUn1DAo8My+m/V + 975X1roqtSvnab/gvR7YDmb3GPv6KMgM2K35kFFhFCy5RdOaEuOTJxM/Y8edXjvObkOj1 + O6j1Fo0jJ07dVcJ/dFBIPXpN2yQl4s3SLbHLTL6c1KpngUz+lYPBLWTJXaXuFyeT4ZmRT + iRq3e9Tt4RYjda4Gjra/6dDBSRHbEuTf+HLX4mCnvHvrYUsM//oRJs3FVvQ8oRZu+qrvl + Gc+tDW+cJn430BRN1LYwLwkG+8R/raF+aPYNtQRUfjOd83MFY7+G8kU3Gt+O8lgzgj9TU + pMzAF0z4Cy9j47Dt/QeeybJeecKpa5d2qEkVnWF76ru+gMoSt0jRhhu9MQWhmtcKc0G+B + oIUjfnkyOq/t/+qF1SEjGbw5evAFQ1F90JhsdDI34lTHTNWBkVa1vxNI+MObn/t6cvEKX + PWfo5jhc/CYn7gIp4PJNMBTX3lB8qCczTX07zpSYFfwK1Bh2ih8jmID9iOwkMGppX2qBP + l5LDMnbDOmgg4XYbGDOz92pbxcWHxPxS1JAV6SXqWZQCbOHUfItfw4ZQ1DbQmD/yQG4YS + rnytd/TRKBTVUaLxrzkOMQVIgReuE8U8pkyCYktWryGIjFI2PF45wtVCA5XGZA= + +- job: + name: storyboard-build-opendev-image + parent: opendev-build-docker-image + dependencies: opendev-buildset-registry + description: Build OpenDev Docker images for storyboard + vars: &storyboard_opendev_image_vars + zuul_work_dir: src/opendev.org/opendev/storyboard + docker_images: + - context: . + repository: opendevorg/storyboard + target: storyboard + - context: . + repository: opendevorg/storyboard-api + target: storyboard-api + - context: . + repository: opendevorg/storyboard-subscriber + target: storyboard-subscriber + - context: . + repository: opendevorg/storyboard-worker-daemon + target: storyboard-worker-daemon + - context: . + repository: opendevorg/storyboard-db-manage + target: storyboard-db-manage + - context: . + repository: opendevorg/storyboard-migrate + target: storyboard-migrate + - context: . + repository: opendevorg/storyboard-cron + target: storyboard-cron + +- job: + name: storyboard-upload-opendev-image + parent: opendev-upload-docker-image + description: Build OpenDev storyboard Docker images and upload to Docker Hub. + vars: *storyboard_opendev_image_vars + secrets: + - name: docker_credentials + secret: storyboard-opendev-dockerhub + pass-to-parent: true + +- job: + name: storyboard-promote-opendev-image + parent: opendev-promote-docker-image + description: Promote previously uploaded storyboard Docker images. + vars: *storyboard_opendev_image_vars + secrets: + - name: docker_credentials + secret: storyboard-opendev-dockerhub + pass-to-parent: true + - project: name: opendev/storyboard check: @@ -18,6 +84,8 @@ timeout: 6000 - tox-py36: timeout: 6000 + - opendev-buildset-registry + - storyboard-build-opendev-image gate: jobs: - storyboard-tox-sqlite @@ -26,6 +94,11 @@ timeout: 6000 - tox-py36: timeout: 6000 + - opendev-buildset-registry + - storyboard-upload-opendev-image post: jobs: - publish-openstack-python-branch-tarball + promote: + jobs: + - storyboard-promote-opendev-image diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b7551c9c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,42 @@ +# 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 storyboard + +COPY --from=builder /output/ /output +RUN /output/install-from-bindep + +FROM storyboard as storyboard-api +CMD ["/usr/local/bin/storyboard-api"] + +FROM storyboard as storyboard-subscriber +CMD ["/usr/local/bin/storyboard-subscriber"] + +FROM storyboard as storyboard-worker-daemon +CMD ["/usr/local/bin/storyboard-worker-daemon"] + +FROM storyboard as storyboard-db-manage +CMD ["/usr/local/bin/storyboard-db-manage"] + +FROM storyboard as storyboard-migrate +CMD ["/usr/local/bin/storyboard-migrate"] + +FROM storyboard as storyboard-cron +CMD ["/usr/local/bin/storyboard-cron"] diff --git a/bindep.txt b/bindep.txt index 4867c8c6..ebc53dd8 100644 --- a/bindep.txt +++ b/bindep.txt @@ -2,51 +2,41 @@ # see http://docs.openstack.org/infra/bindep/ for additional information. apt-transport-https [platform:dpkg test] -build-essential [platform:dpkg] +build-essential [platform:dpkg compile test] chromium-browser [platform:dpkg test] -curl cyrus-sasl-devel [platform:rpm] -dbus firefox [!platform:debian test] -gawk -gettext [test] iceweasel [platform:debian test] language-pack-en [platform:ubuntu] libcurl-devel [platform:rpm] -libcurl4-gnutls-dev [platform:dpkg] -libffi-dev [platform:dpkg] +libcurl4-gnutls-dev [platform:dpkg compile] +libffi-dev [platform:dpkg compile] libffi-devel [platform:rpm] -libmysqlclient-dev [platform:dpkg] -libpq-dev [platform:dpkg] +libmysqlclient-dev [platform:ubuntu compile] +default-libmysqlclient-dev [platform:debian compile] +libpq-dev [platform:dpkg compile] locales [platform:debian] lsb-release [test] -mariadb [platform:rpm] -mariadb-devel [platform:rpm] -mariadb-server [platform:rpm] -mysql-client [platform:dpkg] -mysql-server [platform:dpkg] +mariadb [platform:rpm test] +mariadb-devel [platform:rpm test] +mariadb-server [test platform:rpm] +mysql-client [platform:dpkg test] +mysql-server [platform:dpkg test] openldap-devel [platform:rpm] -pkg-config [platform:dpkg] +pkg-config [platform:dpkg compile] pkgconfig [platform:rpm] -postgresql -postgresql-client [platform:dpkg] -postgresql-devel [platform:rpm] -postgresql-server [platform:rpm] -python-dev [platform:dpkg] -python-devel [platform:rpm] -python-lxml -python-zmq -python3-all-dev [platform:ubuntu !platform:ubuntu-precise] -python3-dev [platform:dpkg] -python3-devel [platform:fedora] -python3.4 [platform:ubuntu-trusty] -python3.5 [platform:ubuntu-xenial] -python34-devel [platform:centos] -sqlite [platform:rpm] -sqlite-devel [platform:rpm] -sqlite3 [platform:dpkg] -uuid-dev [platform:dpkg] +postgresql [test] +postgresql-client [platform:dpkg test] +postgresql-devel [platform:rpm test] +postgresql-server [platform:rpm test] +python-dev [compile test platform:dpkg] +python-devel [compile test platform:rpm] +python3-devel [compile test platform:rpm] +sqlite [test platform:rpm] +sqlite-devel [test platform:rpm] +sqlite3 [test platform:dpkg] +uuid-dev [platform:dpkg compile] xorg-x11-server-Xvfb [platform:rpm test] xvfb [platform:dpkg test] zlib-devel [platform:rpm] -zlib1g-dev [platform:dpkg] +zlib1g-dev [platform:dpkg compile]