Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c81107b8ac | ||
| d642b9f32a | |||
| 7ca1173019 | |||
| 4a34af1a90 | |||
| 366895197f | |||
|
|
1631209a2d | ||
|
|
6a2b9d4835 |
5 changed files with 125 additions and 9 deletions
27
Dockerfile
Normal file
27
Dockerfile
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
FROM registry.fedoraproject.org/fedora:32
|
||||||
|
|
||||||
|
ENV NAME=fedora-toolbox VERSION=32
|
||||||
|
LABEL com.github.containers.toolbox="true" \
|
||||||
|
com.github.debarshiray.toolbox="true" \
|
||||||
|
com.redhat.component="$NAME" \
|
||||||
|
name="$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
|
||||||
|
|
||||||
|
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
|
||||||
41
README.md
Normal file
41
README.md
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
# Toolbox — Unprivileged development environment
|
||||||
|
|
||||||
|
[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 ~]$
|
||||||
|
```
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
The fedora-toolbox OCI image for Fedora 39 onwards is no longer built using
|
|
||||||
OpenShift Build Service from the Dockerfile here. It's now being built using
|
|
||||||
Image Factory from fedora-kickstarts and pungi-fedora [1], as part of the
|
|
||||||
ToolbxReleaseBlocker Change [2] for Fedora 39.
|
|
||||||
|
|
||||||
[1] https://pagure.io/fedora-kickstarts/
|
|
||||||
https://pagure.io/pungi-fedora/
|
|
||||||
|
|
||||||
[2] https://fedoraproject.org/wiki/Changes/ToolbxReleaseBlocker
|
|
||||||
42
extra-packages
Normal file
42
extra-packages
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
bash-completion
|
||||||
|
bzip2
|
||||||
|
diffutils
|
||||||
|
dnf-plugins-core
|
||||||
|
findutils
|
||||||
|
flatpak-spawn
|
||||||
|
fpaste
|
||||||
|
git
|
||||||
|
gnupg
|
||||||
|
gnupg2-smime
|
||||||
|
gvfs-client
|
||||||
|
hostname
|
||||||
|
iputils
|
||||||
|
jwhois
|
||||||
|
keyutils
|
||||||
|
krb5-libs
|
||||||
|
less
|
||||||
|
lsof
|
||||||
|
man-db
|
||||||
|
man-pages
|
||||||
|
mlocate
|
||||||
|
mtr
|
||||||
|
nss-mdns
|
||||||
|
openssh-clients
|
||||||
|
passwd
|
||||||
|
pigz
|
||||||
|
procps-ng
|
||||||
|
rsync
|
||||||
|
shadow-utils
|
||||||
|
sudo
|
||||||
|
tcpdump
|
||||||
|
time
|
||||||
|
traceroute
|
||||||
|
tree
|
||||||
|
unzip
|
||||||
|
vte-profile
|
||||||
|
wget
|
||||||
|
which
|
||||||
|
words
|
||||||
|
xorg-x11-xauth
|
||||||
|
xz
|
||||||
|
zip
|
||||||
15
missing-docs
Normal file
15
missing-docs
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
acl
|
||||||
|
bash
|
||||||
|
curl
|
||||||
|
gawk
|
||||||
|
grep
|
||||||
|
gzip
|
||||||
|
libcap
|
||||||
|
openssl
|
||||||
|
p11-kit
|
||||||
|
pam
|
||||||
|
python3
|
||||||
|
rpm
|
||||||
|
sed
|
||||||
|
systemd
|
||||||
|
tar
|
||||||
Loading…
Add table
Add a link
Reference in a new issue