|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
OpenShift base images (core variant)
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
========================================
|
|
![](https://seccdn.libravatar.org/avatar/dcfe7af74d8d03d1a0ebd18962b3b8f18e13cfb21df46c214faa00e234336c40?s=16&d=retro) |
a544bcc |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
This repository contains Dockerfiles for images which can be used as base images
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
to add support for [source-to-image](https://github.com/openshift/source-to-image)
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
without installing several development libraries.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Description
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
--------------------------------
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
OpenShift S2I images use [Software Collections](https://www.softwarecollections.org/en/)
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
packages to provide the latest versions of various software.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
The SCL packages are released more frequently than the RHEL or CentOS systems,
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
which are unlikely to change for several years.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
We rely on RHEL and CentOS for base images, on the other hand,
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
because those are stable, supported, and secure platforms.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Normally, SCL requires manual operation to enable the collection you want to use.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
This is burdensome and can be prone to error.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
The OpenShift S2I approach is to set Bash environment variables that
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
serve to automatically enable the desired collection:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* `BASH_ENV`: enables the collection for all non-interactive Bash sessions
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* `ENV`: enables the collection for all invocations of `/bin/sh`
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* `PROMPT_COMMAND`: enables the collection in interactive shell
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Two examples:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* If you specify `BASH_ENV`, then all your `#!/bin/bash` scripts
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
do not need to call `scl enable`.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* If you specify `PROMPT_COMMAND`, then on execution of the
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
`podman exec ... /bin/bash` command, the collection will be automatically enabled.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
*Note*:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Executables in Software Collections packages (e.g., `ruby`)
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
are not directly in a directory named in the `PATH` environment variable.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
This means that you cannot do:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
$ podman exec <cid> ... ruby
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
but must instead do:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
$ podman exec <cid> ... /bin/bash -c ruby
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
The `/bin/bash -c`, along with the setting the appropriate environment variable,
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
ensures the correct `ruby` executable is found and invoked.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
Note: while the examples in this README are calling `podman`, you can replace any such calls by `docker` with the same arguments
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Usage
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
------------------------
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Choose either the CentOS7 or RHEL7 base image:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* **RHEL7 base image**
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
To build a RHEL7 based image, you need to build it on properly subscribed RHEL machine.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
```
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
$ git clone --recursive https://github.com/sclorg/s2i-base-container.git
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
$ cd s2i-base-container
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
$ make build VERSIONS=core TARGET=rhel7
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
```
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
* **CentOS7 base image**
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
This image is available on DockerHub. To download it run:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
```console
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
podman pull sclorg/s2i-core-centos7
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
```
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
To build a Base image from scratch run:
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
```
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
$ git clone --recursive https://github.com/sclorg/s2i-base-container.git
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
$ cd s2i-base-container
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
$ make build VERSIONS=core
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
```
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
**Notice: By omitting the `VERSION` parameter, the build/test action will be performed
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
on all provided versions of s2i image.**
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
See also
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
--------
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
Dockerfile and other sources are available on https://github.com/sclorg/s2i-base-container.
|
|
![](https://seccdn.libravatar.org/avatar/cb4998a7b3a2d8a7f77c690a678a229d9d73773bebbc5d1512cd3d46150ace3b?s=16&d=retro) |
85f65ff |
In that repository you also can find another variants of S2I Base Dockerfiles.
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
The Dockerfile for CentOS is called Dockerfile, the Dockerfile for RHEL7 is called Dockerfile.rhel7,
|
|
![](https://seccdn.libravatar.org/avatar/1748a252e7d292609e41834a55a5bbeefbc285d64cbc6e3489fece31e8e09bbc?s=16&d=retro) |
31622b3 |
the Dockerfile for RHEL8 is called Dockerfile.rhel8 and the Dockerfile for Fedora is Dockerfile.fedora.
|