Add containerfile element
This is a base element which uses a containerfile (Dockerfile) to build a container image, then the filesystem is extracted from that image and forms the root of the dib image. You can add as little or as much to the dockerfile as desired. Change-Id: I4e821aa2ce7feb8841ef31da56de1a31aa9218b5
This commit is contained in:
parent
34de4ebd6e
commit
edff632186
@ -29,6 +29,7 @@
|
||||
- ubuntu-minimal/xenial-build-succeeds
|
||||
- ubuntu-minimal/bionic-build-succeeds
|
||||
- ubuntu-minimal/focal-build-succeeds
|
||||
- containerfile/focal-build-succeeds
|
||||
|
||||
- job:
|
||||
name: dib-functests-image
|
||||
|
9
diskimage_builder/elements/containerfile/README.rst
Normal file
9
diskimage_builder/elements/containerfile/README.rst
Normal file
@ -0,0 +1,9 @@
|
||||
=============
|
||||
containerfile
|
||||
=============
|
||||
|
||||
Base element for creating images from container files (aka
|
||||
Dockerfiles).
|
||||
|
||||
To use this element, create a container file (Dockerfile), and supply
|
||||
the path to that file in the environment variable `DIB_CONTAINER_FILE`.
|
@ -0,0 +1 @@
|
||||
operating-system
|
42
diskimage_builder/elements/containerfile/root.d/08-containerfile
Executable file
42
diskimage_builder/elements/containerfile/root.d/08-containerfile
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2015 Hewlett-Packard Development Company, L.P.
|
||||
# Copyright 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.
|
||||
#
|
||||
if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
|
||||
set -x
|
||||
fi
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
if [ -f ${TARGET_ROOT}/.extra_settings ] ; then
|
||||
. ${TARGET_ROOT}/.extra_settings
|
||||
fi
|
||||
|
||||
[ -n "$DIB_CONTAINER_FILE" ]
|
||||
|
||||
# Use the image cache directory as the default context, so anything
|
||||
# there is automatically available for COPY commands.
|
||||
DIB_CONTAINER_CONTEXT=${DIB_CONTAINER_CONTEXT:-${DIB_IMAGE_CACHE}/containerfile}
|
||||
|
||||
mkdir -p $DIB_CONTAINER_CONTEXT
|
||||
|
||||
podman build -t dib-work-image -f $DIB_CONTAINER_FILE $DIB_CONTAINER_CONTEXT
|
||||
container=$(podman run -d dib-work-image /bin/sh)
|
||||
podman export $container | sudo tar -C $TARGET_ROOT --numeric-owner -xf -
|
||||
podman rm $container
|
||||
podman rmi dib-work-image
|
||||
|
||||
sudo rm -f ${TARGET_ROOT}/.extra_settings
|
@ -0,0 +1,2 @@
|
||||
Verify we can build an image from a containerfile.
|
||||
|
@ -0,0 +1 @@
|
||||
openstack-ci-mirrors
|
@ -0,0 +1,2 @@
|
||||
# For the openstack-ci-mirrors element
|
||||
export DISTRO_NAME=ubuntu
|
@ -0,0 +1,3 @@
|
||||
path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
path="$( dirname $path)"
|
||||
export DIB_CONTAINER_FILE="$path/files/Dockerfile"
|
@ -0,0 +1,2 @@
|
||||
FROM docker.io/library/ubuntu:focal
|
||||
RUN touch /testfile
|
@ -0,0 +1 @@
|
||||
tar
|
@ -4,5 +4,6 @@
|
||||
- ensure-pip
|
||||
- bindep
|
||||
- dib-setup-gate-mirrors
|
||||
- ensure-podman
|
||||
- dib-functests
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user