Skip to content
Open
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
122 changes: 32 additions & 90 deletions kitchen-sink-debug/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,106 +1,48 @@
FROM golang:1.10 as builder
# Compile simple-server
FROM golang:1.18 AS build-simple-server
WORKDIR /go/src/github.com/markeijsermans/docker-debug/kitchen-sink-debug
COPY simple-server.go .
RUN go get -v .
COPY simple-server.go go.mod go.sum ./
RUN CGO_ENABLED=0 GOOS=linux go build -a -o simple-server .


FROM ubuntu:16.04
MAINTAINER Mark Eijsermans <mark.eijsermans@gmail.com>

# Prepare a layer with all required utilities
FROM ubuntu:22.04 AS template
ADD sources.list /etc/apt/sources.list

COPY packages.txt .
RUN apt-get update && \
apt-get install -y \
bind9utils \
build-essential \
bzip2 \
coreutils \
cpustat \
curl \
diffutils \
dnsutils \
ethtool \
findutils \
gcc \
git \
gzip \
htop \
ifstat \
iftop \
iperf \
iproute2 \
iptables \
iptstate \
iputils-ping \
iputils-tracepath \
jq \
libbind-dev \
libcap-dev \
libgeoip-dev \
libkrb5-dev \
libnghttp2-dev \
libssl-dev \
libxml2-dev \
lsb-release \
lsof \
lynx \
make \
net-tools \
netcat-openbsd \
netperf \
nghttp2 \
openssh-client \
openssl \
procps \
socat \
strace \
sysstat \
tcpdump \
tree \
unzip \
vim \
wget \
xxdiff \
&& apt-get clean
apt-get install $(cat packages.txt) -y && \
apt-get clean && \
rm packages.txt

# install slow_cooker
RUN wget -q -O /usr/local/bin/slow_cooker https://github.com/BuoyantIO/slow_cooker/releases/download/1.1.0/slow_cooker_linux_amd64 && \
chmod 755 /usr/local/bin/slow_cooker

# install wrk
RUN git clone https://github.com/wg/wrk.git /tmp/wrk && \
cd /tmp/wrk && \
make && \
mv wrk /usr/local/bin/wrk && \
cd / && \
rm -rf /tmp/wrk

# install dnsperf
# Compile dnsperf
FROM template AS build-dnsperf
RUN cd /tmp && \
curl ftp://ftp.nominum.com/pub/nominum/dnsperf/2.1.0.0/dnsperf-src-2.1.0.0-1.tar.gz -O && \
tar -xzf dnsperf-src-2.1.0.0-1.tar.gz && \
cd dnsperf-src-2.1.0.0-1 && \
curl https://www.dns-oarc.net/files/dnsperf/dnsperf-2.9.0.tar.gz -O && \
tar xf dnsperf-2.9.0.tar.gz && \
cd dnsperf-2.9.0 && \
./configure && \
make && \
make install && \
cd / && \
rm -rf /tmp/dnsperf-src-2.1.0.0-1
make install

# install curl with HTTP/2 support
RUN cd /tmp && \
wget https://curl.haxx.se/download/curl-7.54.1.tar.bz2 && \
tar -xjf curl-7.54.1.tar.bz2 && \
cd curl-7.54.1 && \
# Compile wrk
FROM template AS build-wrk
RUN git clone https://github.com/wg/wrk.git /tmp/wrk && \
cd /tmp/wrk && \
make && \
make install && \
ldconfig && \
cd / && \
rm -rf /tmp/curl-7.54.1
mv wrk /usr/local/bin/wrk

# add simple server
COPY --from=builder /go/src/github.com/markeijsermans/docker-debug/kitchen-sink-debug/simple-server .
# Setup final image
FROM template AS final

# Install slow_cooker
RUN wget -O /usr/local/bin/slow_cooker https://github.com/BuoyantIO/slow_cooker/releases/download/1.2.0/slow_cooker_linux_amd64 && \
chmod 755 /usr/local/bin/slow_cooker

# Install previously compiled binaries
COPY --from=build-dnsperf /usr/local/bin* /usr/local/bin/
COPY --from=build-simple-server /go/src/github.com/markeijsermans/docker-debug/kitchen-sink-debug/simple-server /usr/local/bin/
COPY --from=build-wrk /usr/local/bin/wrk /usr/local/bin/

# lets just set the TERM for `exec`ing into a container
ENV TERM=xterm
ADD .bashrc /root/.bashrc
MAINTAINER Mark Eijsermans <mark.eijsermans@gmail.com>
11 changes: 11 additions & 0 deletions kitchen-sink-debug/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module markeijsermans/docker-debug

go 1.18

require github.com/valyala/fasthttp v1.41.0

require (
github.com/andybalholm/brotli v1.0.4 // indirect
github.com/klauspost/compress v1.15.9 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
)
21 changes: 21 additions & 0 deletions kitchen-sink-debug/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY=
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.41.0 h1:zeR0Z1my1wDHTRiamBCXVglQdbUwgb9uWG3k1HQz6jY=
github.com/valyala/fasthttp v1.41.0/go.mod h1:f6VbjjoI3z1NDOZOv17o6RvtRSWxC77seBFc2uWtgiY=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
54 changes: 54 additions & 0 deletions kitchen-sink-debug/packages.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
bind9utils
build-essential
bzip2
coreutils
cpustat
curl
diffutils
dh-autoreconf
dnsutils
ethtool
findutils
gcc
git
gzip
htop
ifstat
iftop
iperf
iproute2
iptables
iptstate
iputils-ping
iputils-tracepath
jq
libbind-dev
libcap-dev
libck-dev
libgeoip-dev
libkrb5-dev
libnghttp2-dev
libssl-dev
libxml2-dev
lsb-release
lsof
lynx
make
net-tools
netcat-openbsd
netperf
nghttp2
nmap
openssh-client
openssl
procps
socat
strace
sysstat
tcpdump
traceroute
tree
unzip
vim
wget
xxdiff
40 changes: 20 additions & 20 deletions kitchen-sink-debug/sources.list
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
deb http://archive.ubuntu.com/ubuntu/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted
deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted

deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted

deb http://archive.ubuntu.com/ubuntu/ xenial universe
deb-src http://archive.ubuntu.com/ubuntu/ xenial universe
deb http://archive.ubuntu.com/ubuntu/ xenial-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates universe
deb http://archive.ubuntu.com/ubuntu/ jammy universe
deb-src http://archive.ubuntu.com/ubuntu/ jammy universe
deb http://archive.ubuntu.com/ubuntu/ jammy-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates universe

deb http://archive.ubuntu.com/ubuntu/ xenial multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://archive.ubuntu.com/ubuntu/ xenial-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates multiverse

deb http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse
deb http://security.ubuntu.com/ubuntu jammy-security main restricted
deb-src http://security.ubuntu.com/ubuntu jammy-security main restricted
deb http://security.ubuntu.com/ubuntu jammy-security universe
deb-src http://security.ubuntu.com/ubuntu jammy-security universe
deb http://security.ubuntu.com/ubuntu jammy-security multiverse
deb-src http://security.ubuntu.com/ubuntu jammy-security multiverse