Compare commits

...
Sign in to create a new pull request.

7 commits

Author SHA1 Message Date
c69eb1d2f5 Add label for tagging, not tied to the fedora-toolbox name
Currently the toolbox script identifies toolbox images and containers
by checking whether the com.redhat.component label matches
"fedora-toolbox". However, as per the Fedora Container Guidelines [1],
the com.redhat.com label should match the Red Hat Bugzilla component
name where bugs against the image should be reported. This means that
images derived from the base fedora-toolbox image would likely end up
overwriting it.

One option would've been to mandate that all toolbox images have the
"fedora-toolbox-" prefix in their names. However, it's better to avoid
putting limitations on how images can be named. The "fedora" name
wouldn't anyway work for images based on other distributions, and not
all images are going to use the Red Hat bugzilla for tracking bugs.

It's better to use a tag that's uniquely associated with the toolbox
project, and isn't tied to a particular distribution or bug tracker.

[1] https://fedoraproject.org/wiki/Container:Guidelines
2019-04-15 18:09:52 +02:00
1071df12bc Synchronize with upstream 2019-03-22 12:09:56 +01:00
9682f2fdf2 Reduce the size by removing temporary files created by DNF
For a locally built squashed fedora-toolbox:29 image [1], the size
reported by 'podman images' goes from 630 MB to 425 MB.

[1] Using: buildah bud --squash ...
2019-03-22 12:09:36 +01:00
0855ca7832 extra-packages: Add krb5-libs
The krb5-libs package was added to the base toolbox images to ensure
the presence of the /etc/krb5.conf.d directory with the correct
permissions. Currently, the package is already pulled in by various
dependencies. Therefore, it doesn't increase the size of the base
image, but serves as a safeguard against any inadvertent changes.

https://github.com/debarshiray/toolbox/pull/74
2019-03-22 12:07:00 +01:00
b6302f1a64 Restore documentation removed from the base Fedora images
https://github.com/debarshiray/toolbox/pull/55
2019-03-22 12:06:02 +01:00
a8e8f3f404 Synchronize with upstream 2019-02-25 15:06:20 +01:00
94f069a10d Add the rest of the files 2018-09-26 17:55:04 +02:00
4 changed files with 127 additions and 2 deletions

27
Dockerfile Normal file
View file

@ -0,0 +1,27 @@
FROM registry.fedoraproject.org/fedora:28
ENV NAME=fedora-toolbox VERSION=28
LABEL 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 Fedora toolbox containers" \
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
COPY README.md /
RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf
RUN dnf -y swap coreutils-single coreutils-full
COPY missing-docs /
RUN dnf -y reinstall $(<missing-docs)
RUN rm /missing-docs
COPY extra-packages /
RUN dnf -y install $(<extra-packages)
RUN rm /extra-packages
RUN dnf clean all
CMD /bin/sh

View file

@ -1,3 +1,41 @@
# fedora-toolbox
# Toolbox — Unprivileged development environment
The fedora-toolbox package
[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 then
customized for the current user to create a toolbox container that seamlessly
integrates with the rest of the operating system.
## Usage
### Create your toolbox container:
```
[user@hostname ~]$ toolbox create
[user@hostname ~]$
```
This will create a container, and an image, called
`fedora-toolbox-<your-username>:<version-id>` that's specifically customised
for your host user.
### Enter the toolbox:
```
[user@hostname ~]$ toolbox enter
🔹[user@toolbox ~]$
```

38
extra-packages Normal file
View file

@ -0,0 +1,38 @@
bash-completion
bzip2
diffutils
dnf-plugins-core
findutils
fpaste
git
gnupg
gnupg2-smime
hostname
iputils
jwhois
keyutils
krb5-libs
less
lsof
man-db
man-pages
mlocate
mtr
openssh-clients
PackageKit-command-not-found
passwd
pigz
procps-ng
rsync
sudo
tcpdump
time
traceroute
tree
unzip
vte-profile
wget
which
words
xz
zip

22
missing-docs Normal file
View file

@ -0,0 +1,22 @@
acl
bash
chkconfig
curl
dbus
dnf
gawk
grep
gzip
info
libcap
nss
openssl
p11-kit
pam
pkgconf
python3
rpm
rpm-plugin-systemd-inhibit
sed
systemd
tar