mirror of
https://github.com/GNS3/gns3-registry.git
synced 2025-03-23 20:45:18 +00:00
ipterm: Update to Debian 12 (bookworm)
This commit is contained in:
parent
2afdd4fc66
commit
9b3bb5b503
@ -8,8 +8,8 @@
|
||||
"product_name": "ipterm",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"maintainer": "Bernhard Ehlers",
|
||||
"maintainer_email": "dev-ehlers@mailbox.org",
|
||||
"usage": "The /root directory is persistent.",
|
||||
"symbol": "linux_guest.svg",
|
||||
"docker": {
|
||||
|
@ -8,8 +8,8 @@
|
||||
"product_name": "webterm",
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"maintainer": "Bernhard Ehlers",
|
||||
"maintainer_email": "dev-ehlers@mailbox.org",
|
||||
"usage": "The /root directory is persistent.",
|
||||
"symbol": "firefox.svg",
|
||||
"docker": {
|
||||
|
@ -4,10 +4,9 @@
|
||||
|
||||
# chromium: base image is updated too often, use manual build on base updates
|
||||
chromium chromium NONE
|
||||
# ipterm: base image debian:jessie too old
|
||||
#ipterm-base ipterm/base
|
||||
#ipterm ipterm/cli
|
||||
#webterm ipterm/web
|
||||
ipterm-base ipterm/base
|
||||
ipterm ipterm/cli
|
||||
webterm ipterm/web
|
||||
jupyter:v2 jupyter
|
||||
jupyter27:v2 jupyter-2.7
|
||||
# kalilinux: base image is updated too often, use manual build on base updates
|
||||
@ -15,7 +14,7 @@ kalilinux kalilinux NONE
|
||||
mikrotik-winbox mikrotik-winbox
|
||||
# ostinato-wireshark: failed to build: mesa-dri-swrast - no such package
|
||||
#ostinato-wireshark ostinato-wireshark
|
||||
openvswitch openvswitch
|
||||
openvswitch openvswitch
|
||||
ovs-snmp ovs-snmp --platform=linux/arm64
|
||||
pyats pyats
|
||||
ubuntu:focal ubuntu
|
||||
|
@ -41,11 +41,11 @@ docker push gns3/ipterm-base (optional)
|
||||
Afterwards the cli and/or the web image can be built:
|
||||
|
||||
```
|
||||
docker build -t gns3/ipterm cli
|
||||
docker build --build-arg DOCKER_REPOSITORY=gns3 -t gns3/ipterm cli
|
||||
docker push gns3/ipterm
|
||||
```
|
||||
|
||||
```
|
||||
docker build -t gns3/webterm web
|
||||
docker build --build-arg DOCKER_REPOSITORY=gns3 -t gns3/webterm web
|
||||
docker push gns3/webterm
|
||||
```
|
||||
|
@ -1,29 +1,32 @@
|
||||
# docker base image for basic networking tools
|
||||
|
||||
FROM debian:jessie
|
||||
## Stage 1 - compile mtools (msend & mreceive)
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
RUN set -ex \
|
||||
RUN set -e -x \
|
||||
&& cd /root \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
#
|
||||
# compile and install mtools (msend & mreceive)
|
||||
#
|
||||
&& dpkg-query -f '${binary:Package}\n' -W | sort > base_packages \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
|
||||
&& apt-get -y --no-install-recommends install \
|
||||
gcc libc6-dev make curl ca-certificates \
|
||||
&& curl -OL https://github.com/troglobit/mtools/releases/download/v2.3/mtools-2.3.tar.gz \
|
||||
&& curl -s -S -L -O https://github.com/troglobit/mtools/releases/download/v2.3/mtools-2.3.tar.gz \
|
||||
&& tar xfz mtools-2.3.tar.gz \
|
||||
&& cd mtools-2.3 \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -r mtools-2.3* \
|
||||
&& dpkg-query -f '${binary:Package}\n' -W | sort > packages \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get -y purge \
|
||||
`comm -13 base_packages packages` \
|
||||
&& rm -f base_packages packages \
|
||||
#
|
||||
# install remaining tools
|
||||
#
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
|
||||
net-tools tcpdump telnet traceroute curl iperf3 knot-host openssh-client mtr-tiny socat nano vim-tiny \
|
||||
&& make install
|
||||
|
||||
## Stage 2 - Main image
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
COPY --from=0 /usr/local/sbin/* /usr/local/bin/
|
||||
|
||||
RUN set -e -x \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
&& apt-get -y --no-install-recommends install \
|
||||
dumb-init curl ca-certificates iperf3 knot-host \
|
||||
mtr-tiny openssh-client socat tcpdump \
|
||||
net-tools iproute2 ifupdown iputils-ping \
|
||||
telnet traceroute procps nano vim-tiny \
|
||||
&& ln -s /usr/bin/khost /usr/local/bin/host \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
@ -1,9 +1,24 @@
|
||||
# docker image with basic networking tools
|
||||
|
||||
FROM gns3/ipterm-base
|
||||
ARG DOCKER_REPOSITORY
|
||||
FROM $DOCKER_REPOSITORY/ipterm-base
|
||||
|
||||
# add a dummy layer to get an updated container timestamp
|
||||
RUN /bin/true
|
||||
#
|
||||
# startup script
|
||||
#
|
||||
RUN printf '\
|
||||
\043!/bin/sh\n\
|
||||
[ $$ -eq 1 ] && exec dumb-init -- "$0" "$@"\n\
|
||||
\n\
|
||||
[ -f /root/init.sh ] && [ -x /root/init.sh ] && /root/init.sh\n\
|
||||
\n\
|
||||
cd\n\
|
||||
if [ $# -gt 0 ]; then\n\
|
||||
"$@"\n\
|
||||
else\n\
|
||||
bash -i -l\n\
|
||||
fi\n' \
|
||||
> /etc/init.sh && chmod +x /etc/init.sh
|
||||
|
||||
ENTRYPOINT [ "/etc/init.sh" ]
|
||||
VOLUME [ "/root" ]
|
||||
CMD [ "sh", "-c", "cd; exec bash -i" ]
|
||||
|
@ -24,6 +24,6 @@ This appliance contains the following networking tools:
|
||||
Before ipterm-base has to be build.
|
||||
|
||||
```
|
||||
docker build -t gns3/ipterm .
|
||||
docker build --build-arg DOCKER_REPOSITORY=gns3 -t gns3/ipterm .
|
||||
docker push gns3/ipterm
|
||||
```
|
||||
|
@ -1,59 +1,93 @@
|
||||
# docker image with basic networking tools and web browser
|
||||
# docker image with firefox web browser and basic networking tools
|
||||
|
||||
FROM gns3/ipterm-base
|
||||
ARG DOCKER_REPOSITORY
|
||||
FROM $DOCKER_REPOSITORY/ipterm-base
|
||||
|
||||
# minimal init, see https://github.com/Yelp/dumb-init
|
||||
ADD https://github.com/Yelp/dumb-init/releases/download/v1.1.1/dumb-init_1.1.1_amd64 /usr/local/sbin/dumb-init
|
||||
|
||||
RUN set -ex \
|
||||
&& chmod 755 /usr/local/sbin/dumb-init \
|
||||
&& apt-get update \
|
||||
RUN set -e -x \
|
||||
#
|
||||
# install web tools
|
||||
#
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
|
||||
firefox-esr lxterminal jwm menu leafpad apache2-utils \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
&& apt-get update \
|
||||
&& apt-get -y --no-install-recommends install \
|
||||
firefox-esr lxterminal jwm menu xfe wmctrl \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& /bin/echo -e '\
|
||||
\x23!/bin/sh\n\
|
||||
\n\
|
||||
\x23 use home page on first start\n\
|
||||
[ -e "$HOME/.mozilla" ] || start_url="about:home"\n\
|
||||
\n\
|
||||
\x23 start firefox\n\
|
||||
start=$(date +%s)\n\
|
||||
firefox $start_url\n\
|
||||
status=$?\n\
|
||||
\n\
|
||||
\x23 workaround: restart firefox, if it crashes during initialization\n\
|
||||
if [ $status -eq 139 -a $(($(date +%s)-start)) -le 10 ]; then\n\
|
||||
firefox $start_url\n\
|
||||
fi' \
|
||||
> /usr/local/bin/start-firefox && chmod +x /usr/local/bin/start-firefox \
|
||||
&& /bin/echo -e '\
|
||||
#
|
||||
# update firefox preferences
|
||||
#
|
||||
&& printf '\n\
|
||||
// Disable welcome page on first start and when showing about:home\n\
|
||||
pref("browser.startup.homepage_override.mstone","ignore");\n\
|
||||
pref("trailhead.firstrun.branches", "nofirstrun-empty");\n' \
|
||||
>> /etc/firefox-esr/firefox-esr.js \
|
||||
#
|
||||
# customize jwm menu
|
||||
#
|
||||
&& printf '\
|
||||
?package(firefox-esr):\\\n\
|
||||
needs="x11"\\\n\
|
||||
section="Applications"\\\n\
|
||||
title="Mozilla Firefox"\\\n\
|
||||
command="start-firefox"' \
|
||||
command="firefox"\n' \
|
||||
> /etc/menu/firefox \
|
||||
&& echo "postrun="\""sed -i '/^ </ d' debian-menu"\" >> /etc/menu-methods/jwm \
|
||||
&& printf '\
|
||||
?package(xfe):\\\n\
|
||||
needs="x11"\\\n\
|
||||
section="/"\\\n\
|
||||
title="File Manager"\\\n\
|
||||
command="xfe"\n' \
|
||||
> /etc/menu/xfe \
|
||||
&& printf '\
|
||||
?package(xfe):\\\n\
|
||||
needs="x11"\\\n\
|
||||
section="Applications/TextEditor"\\\n\
|
||||
title="X File Write"\\\n\
|
||||
command="xfwrite"\n' \
|
||||
> /etc/menu/xfwrite \
|
||||
&& echo "postrun=\"sed -i '/^ </ d' debian-menu\"" >> /etc/menu-methods/jwm \
|
||||
&& sed -i 's/\(Desktops width\)="[0-9]*"/\1="2"/' /etc/jwm/system.jwmrc \
|
||||
&& sed -i '/<Font>/ s/-[0-9]\+/-10/' /etc/jwm/system.jwmrc \
|
||||
&& sed -i 's/xterm/x-terminal-emulator/g' /etc/jwm/system.jwmrc \
|
||||
&& update-menus \
|
||||
#
|
||||
# set lxterminal defaults
|
||||
#
|
||||
&& mkdir -p /root/.config/lxterminal \
|
||||
&& /bin/echo -e '\
|
||||
&& printf '\
|
||||
[general]\n\
|
||||
scrollback=1000\n\
|
||||
fgcolor=#ffffff' \
|
||||
fgcolor=#ffffff\n' \
|
||||
> /root/.config/lxterminal/lxterminal.conf \
|
||||
&& /bin/echo -e '\
|
||||
\x23!/bin/sh\n\
|
||||
[ $$ -eq 1 ] && exec dumb-init "$0" "$@"\n\
|
||||
#
|
||||
# set xfe defaults
|
||||
#
|
||||
&& mkdir -p /root/.config/xfe \
|
||||
&& printf '\
|
||||
[OPTIONS]\n\
|
||||
root_warn=0\n\
|
||||
\n\
|
||||
[PROGS]\n\
|
||||
xterm=x-terminal-emulator\n' \
|
||||
> /root/.config/xfe/xferc \
|
||||
#
|
||||
# startup script
|
||||
#
|
||||
&& printf '\
|
||||
\043!/bin/sh\n\
|
||||
[ $$ -eq 1 ] && exec dumb-init -- "$0" "$@"\n\
|
||||
\n\
|
||||
cd\n\
|
||||
export SHELL=/bin/bash\n\
|
||||
start-firefox &\n\
|
||||
jwm' \
|
||||
\n\
|
||||
\043 start firefox\n\
|
||||
firefox &\n\
|
||||
\n\
|
||||
\043 start a windows manager if none is active\n\
|
||||
if wmctrl -m > /dev/null 2>&1; then\n\
|
||||
wait $!\n\
|
||||
else\n\
|
||||
jwm\n\
|
||||
fi\n' \
|
||||
> /etc/init.sh && chmod +x /etc/init.sh
|
||||
|
||||
VOLUME [ "/root" ]
|
||||
|
@ -20,11 +20,20 @@ This appliance contains the following networking tools:
|
||||
- mtools (multicast tools msend & mreceive),
|
||||
see https://github.com/troglobit/mtools
|
||||
|
||||
This appliance is optimized to run within GNS3.
|
||||
To run it locally use xhost to allow access to X and
|
||||
then start the image.
|
||||
|
||||
```text
|
||||
xhost +local:
|
||||
docker run -it --ipc=host -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix gns3/webterm
|
||||
```
|
||||
|
||||
## Build and publish the Images
|
||||
|
||||
Before ipterm-base has to be build.
|
||||
|
||||
```
|
||||
docker build -t gns3/webterm .
|
||||
docker build --build-arg DOCKER_REPOSITORY=gns3 -t gns3/webterm .
|
||||
docker push gns3/webterm
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user