Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First attempt at a CentOS-7 toolbox container. #286

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions images/centos/7/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
FROM docker.io/library/centos:7

ENV NAME=centos-toolbox VERSION=7
LABEL com.github.containers.toolbox="true" \
com.github.debarshiray.toolbox="true" \
com.redhat.component="$NAME" \
name="$FGC/$NAME" \
version="$VERSION" \
usage="This image is meant to be used with the toolbox command" \
summary="Base image for creating CentOS 7 toolbox containers" \
maintainer="Debarshi Ray <rishi@fedoraproject.org>"

COPY README.md /

RUN sed -i '/tsflags=nodocs/d' /etc/yum.conf

COPY missing-docs /
COPY extra-packages /
#RUN yum -y swap coreutils coreutils-full
RUN yum -y upgrade && \
yum -y reinstall $(<missing-docs) && \
yum -y install $(<extra-packages) && \
yum clean all
RUN rm /missing-docs
RUN rm /extra-packages

RUN echo VARIANT_ID=container >> /etc/os-release
RUN ln -s /etc/os-release /usr/lib/os-release
debarshiray marked this conversation as resolved.
Show resolved Hide resolved

CMD /bin/sh
41 changes: 41 additions & 0 deletions images/centos/7/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<img src="data/logo/toolbox-logo-landscape.svg" alt="Toolbox logo landscape" width="800"/>

[Toolbox](https://github.com/debarshiray/toolbox) is a tool that offers a
familiar RPM based environment for developing and debugging software that runs
fully unprivileged using [Podman](https://podman.io/).

The toolbox container is a fully *mutable* container; when you see
`yum install ansible` for example, that's something you can do inside your
toolbox container, without affecting the base operating system.

This is particularly useful on
[OSTree](https://ostree.readthedocs.io/en/latest/) based Fedora systems like
[Silverblue](https://silverblue.fedoraproject.org/). The intention of these
systems is to discourage installation of software on the host, and instead
install software as (or in) containers.

However, this tool doesn't *require* using an OSTree based system — it
works equally well if you're running e.g. existing Fedora Workstation or
Server, and that's a useful way to incrementally adopt containerization.

The toolbox environment is based on an [OCI](https://www.opencontainers.org/)
image. On Fedora this is the `fedora-toolbox` image. This image is used to
create a toolbox container that seamlessly integrates with the rest of the
operating system.

## Usage

### Create your toolbox container:
```
[user@hostname ~]$ toolbox create
Created container: fedora-toolbox-30
Enter with: toolbox enter
[user@hostname ~]$
```
This will create a container called `fedora-toolbox-<version-id>`.

### Enter the toolbox:
```
[user@hostname ~]$ toolbox enter
⬢[user@toolbox ~]$
```
28 changes: 28 additions & 0 deletions images/centos/7/extra-packages
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
bash-completion
bzip2
git
gnupg2-smime
keyutils
less
lsof
man-db
man-pages
mlocate
mtr
openssh-clients
openssl
PackageKit-command-not-found
pigz
rpm-plugin-systemd-inhibit
rsync
sudo
tcpdump
time
traceroute
tree
unzip
vte-profile
wget
which
words
zip
20 changes: 20 additions & 0 deletions images/centos/7/missing-docs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
acl
bash
chkconfig
curl
dbus
yum
gawk
grep
gzip
info
libcap
nss
p11-kit
pam
pkgconfig
python
rpm
sed
systemd
tar