fix: drone, docker-compose, Dockerfile and Makefile
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Markus Pesch 2021-08-30 20:13:06 +02:00
parent b7c64622c9
commit 0104e01dcc
Signed by: volker.raschek
GPG Key ID: 852BCC170D81A982
7 changed files with 284 additions and 60 deletions

View File

@ -1,9 +1,57 @@
---
kind: pipeline kind: pipeline
type: docker type: kubernetes
name: build-image-x86_64 name: linter
platform:
os: linux
arch: amd64
steps: steps:
- name: build-image-latest - name: markdown lint
commands:
- markdownlint *.md
image: docker.io/tmknom/markdownlint:0.23.1
resources:
limits:
cpu: 50
memory: 50M
- name: email-notification
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: build
platform:
os: linux
arch: amd64
steps:
- name: build
image: docker.io/volkerraschek/build-image:latest image: docker.io/volkerraschek/build-image:latest
commands: commands:
- make container-image/build - make container-image/build
@ -14,12 +62,12 @@ steps:
branch: branch:
- master - master
- name: push-image-latest - name: push
image: docker.io/volkerraschek/build-image:latest image: docker.io/volkerraschek/build-image:latest
commands: commands:
- make container-image/push - make container-image/push
environment: environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD: NETWORKTOOLS_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password from_secret: container_image_registry_password
volumes: volumes:
- name: docker_socket - name: docker_socket
@ -27,8 +75,10 @@ steps:
when: when:
branch: branch:
- master - master
repo:
- volker.raschek/network-tools
- name: delete-image-latest - name: delete
image: docker.io/volkerraschek/build-image:latest image: docker.io/volkerraschek/build-image:latest
commands: commands:
- make container-image/delete - make container-image/delete
@ -39,20 +89,6 @@ steps:
branch: branch:
- master - master
- name: push-readme
image: docker.io/volkerraschek/build-image:latest
commands:
- make push/README
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
branch:
- master
- name: notify - name: notify
image: drillster/drone-email image: drillster/drone-email
environment: environment:
@ -73,3 +109,56 @@ volumes:
- name: docker_socket - name: docker_socket
host: host:
path: /var/run/docker.sock path: /var/run/docker.sock
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: kubernetes
name: sync
platform:
os: linux
arch: amd64
steps:
- name: github
image: docker.io/appleboy/drone-git-push:latest
resources:
limits:
cpu: 50
memory: 25M
settings:
branch: master
remote: ssh://git@github.com/volker-raschek/network-tools.git
force: true
ssh_key:
from_secret: ssh_key
- name: email-notification
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
- push
repo:
- volker.raschek/network-tools

144
.markdownlint.yaml Normal file
View File

@ -0,0 +1,144 @@
# markdownlint YAML configuration
# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml
# Default state for all rules
default: true
# Path to configuration file to extend
extends: null
# MD003/heading-style/header-style - Heading style
MD003:
# Heading style
style: "atx"
# MD004/ul-style - Unordered list style
MD004:
style: "dash"
# MD007/ul-indent - Unordered list indentation
MD007:
# Spaces for indent
indent: 2
# Whether to indent the first level of the list
start_indented: false
# MD009/no-trailing-spaces - Trailing spaces
MD009:
# Spaces for line break
br_spaces: 2
# Allow spaces for empty lines in list items
list_item_empty_lines: false
# Include unnecessary breaks
strict: false
# MD010/no-hard-tabs - Hard tabs
MD010:
# Include code blocks
code_blocks: true
# MD012/no-multiple-blanks - Multiple consecutive blank lines
MD012:
# Consecutive blank lines
maximum: 1
# MD013/line-length - Line length
MD013:
# Number of characters
line_length: 80
# Number of characters for headings
heading_line_length: 80
# Number of characters for code blocks
code_block_line_length: 80
# Include code blocks
code_blocks: false
# Include tables
tables: false
# Include headings
headings: true
# Include headings
headers: true
# Strict length checking
strict: false
# Stern length checking
stern: false
# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
MD022:
# Blank lines above heading
lines_above: 1
# Blank lines below heading
lines_below: 1
# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
# Only check sibling headings
allow_different_nesting: true
# MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025:
# Heading level
level: 1
# RegExp for matching title in front matter
front_matter_title: "^\\s*title\\s*[:=]"
# MD026/no-trailing-punctuation - Trailing punctuation in heading
MD026:
# Punctuation characters
punctuation: ".,;:!。,;:!"
# MD029/ol-prefix - Ordered list item prefix
MD029:
# List style
style: "one_or_ordered"
# MD030/list-marker-space - Spaces after list markers
MD030:
# Spaces for single-line unordered list items
ul_single: 1
# Spaces for single-line ordered list items
ol_single: 1
# Spaces for multi-line unordered list items
ul_multi: 1
# Spaces for multi-line ordered list items
ol_multi: 1
# MD033/no-inline-html - Inline HTML
MD033:
# Allowed elements
allowed_elements: []
# MD035/hr-style - Horizontal rule style
MD035:
# Horizontal rule style
style: "---"
# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
MD036:
# Punctuation characters
punctuation: ".,;:!?。,;:!?"
# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
MD041:
# Heading level
level: 1
# RegExp for matching title in front matter
front_matter_title: "^\\s*title\\s*[:=]"
# MD044/proper-names - Proper names should have the correct capitalization
MD044:
# List of proper names
names:
- network-tools
# Include code blocks
code_blocks: false
# MD046/code-block-style - Code block style
MD046:
# Block style
style: "fenced"
# MD048/code-fence-style - Code fence style
MD048:
# Code fence syle
style: "backtick"

View File

@ -1,5 +1,5 @@
ARG BASE_IMAGE FROM docker.io/library/alpine:3.14.2
FROM ${BASE_IMAGE}
RUN apk add bind-tools curl iputils RUN apk add bind-tools curl iputils
ENTRYPOINT [ "sleep", "3600" ]

View File

@ -3,60 +3,42 @@
# container runtime. This is needed to start and run a container image. # container runtime. This is needed to start and run a container image.
CONTAINER_RUNTIME?=$(shell which docker) CONTAINER_RUNTIME?=$(shell which docker)
# BASE_IMAGE # NETWORKTOOLS_IMAGE_REGISTRY_NAME
# Defines the name of the container base image on which should be built the new
# CONTAINER_IMAGE.
BASE_IMAGE_REGISTRY_NAME:=docker.io
BASE_IMAGE_NAMESPACE:=library
BASE_IMAGE_NAME:=alpine
BASE_IMAGE_VERSION:=3.11.2
BASE_IMAGE_FULL=${BASE_IMAGE_REGISTRY_NAME}/${BASE_IMAGE_NAMESPACE}/${BASE_IMAGE_NAME}:${BASE_IMAGE_VERSION}
BASE_IMAGE_SHORT=${BASE_IMAGE_NAMESPACE}/${BASE_IMAGE_NAME}:${BASE_IMAGE_VERSION}
# CONTAINER_IMAGE_REGISTRY_NAME
# Defines the name of the new container to be built using several variables. # Defines the name of the new container to be built using several variables.
CONTAINER_IMAGE_REGISTRY_NAME:=docker.io NETWORKTOOLS_IMAGE_REGISTRY_NAME:=docker.io
CONTAINER_IMAGE_REGISTRY_USER:=volkerraschek NETWORKTOOLS_IMAGE_REGISTRY_USER:=volkerraschek
CONTAINER_IMAGE_NAMESPACE?=${CONTAINER_IMAGE_REGISTRY_USER} NETWORKTOOLS_IMAGE_NAMESPACE?=${NETWORKTOOLS_IMAGE_REGISTRY_USER}
CONTAINER_IMAGE_NAME:=network-tools NETWORKTOOLS_IMAGE_NAME:=network-tools
CONTAINER_IMAGE_VERSION?=latest NETWORKTOOLS_IMAGE_VERSION?=latest
CONTAINER_IMAGE_FULL=${CONTAINER_IMAGE_REGISTRY_NAME}/${CONTAINER_IMAGE_NAMESPACE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_IMAGE_VERSION} NETWORKTOOLS_IMAGE_FULLY_QUALIFIED=${NETWORKTOOLS_IMAGE_REGISTRY_NAME}/${NETWORKTOOLS_IMAGE_NAMESPACE}/${NETWORKTOOLS_IMAGE_NAME}:${NETWORKTOOLS_IMAGE_VERSION}
CONTAINER_IMAGE_SHORT=${CONTAINER_IMAGE_NAMESPACE}/${CONTAINER_IMAGE_NAME}:${CONTAINER_IMAGE_VERSION} NETWORKTOOLS_IMAGE_UNQUALIFIED=${NETWORKTOOLS_IMAGE_NAMESPACE}/${NETWORKTOOLS_IMAGE_NAME}:${NETWORKTOOLS_IMAGE_VERSION}
# BUILD CONTAINER IMAGE # BUILD CONTAINER IMAGE
# ============================================================================== # ==============================================================================
PHONY:=container-image/build PHONY:=container-image/build
container-image/build: container-image/build:
${CONTAINER_RUNTIME} build \ ${CONTAINER_RUNTIME} build \
--build-arg BASE_IMAGE=${BASE_IMAGE_FULL} \
--file Dockerfile \ --file Dockerfile \
--no-cache \ --no-cache \
--pull \ --pull \
--tag ${CONTAINER_IMAGE_FULL} \ --tag ${NETWORKTOOLS_IMAGE_FULLY_QUALIFIED} \
--tag ${CONTAINER_IMAGE_SHORT} \ --tag ${NETWORKTOOLS_IMAGE_UNQUALIFIED} \
. .
# DELETE CONTAINER IMAGE # DELETE CONTAINER IMAGE
# ============================================================================== # ==============================================================================
PHONY:=container-image/delete PHONY:=container-image/delete
container-image/delete: container-image/delete:
- ${CONTAINER_RUNTIME} image rm ${CONTAINER_IMAGE_FULL} ${CONTAINER_IMAGE_SHORT} - ${CONTAINER_RUNTIME} image rm ${NETWORKTOOLS_IMAGE_FULLY_QUALIFIED} ${NETWORKTOOLS_IMAGE_UNQUALIFIED}
- ${CONTAINER_RUNTIME} image rm ${BASE_IMAGE_FULL} - ${CONTAINER_RUNTIME} image rm ${BASE_IMAGE_FULL}
# PUSH CONTAINER IMAGE # PUSH CONTAINER IMAGE
# ============================================================================== # ==============================================================================
PHONY+=container-image/push PHONY+=container-image/push
container-image/push: container-image/push:
echo ${CONTAINER_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${CONTAINER_IMAGE_REGISTRY_NAME} --username ${CONTAINER_IMAGE_REGISTRY_USER} --password-stdin echo ${NETWORKTOOLS_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${NETWORKTOOLS_IMAGE_REGISTRY_NAME} --username ${NETWORKTOOLS_IMAGE_REGISTRY_USER} --password-stdin
${CONTAINER_RUNTIME} push ${CONTAINER_IMAGE_FULL} ${CONTAINER_RUNTIME} push ${NETWORKTOOLS_IMAGE_FULLY_QUALIFIED}
# PUSH README
# ==============================================================================
PHONY+=push/README
push/README:
echo ${CONTAINER_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${CONTAINER_IMAGE_REGISTRY_NAME} --username ${CONTAINER_IMAGE_REGISTRY_USER} --password-stdin
docker pushrm ${CONTAINER_IMAGE_FULL}
# PHONY # PHONY
# ============================================================================== # ==============================================================================

View File

@ -3,11 +3,10 @@
[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/network-tools/status.svg)](https://drone.cryptic.systems/volker.raschek/network-tools) [![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/network-tools/status.svg)](https://drone.cryptic.systems/volker.raschek/network-tools)
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/network-tools)](https://hub.docker.com/r/volkerraschek/network-tools) [![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/network-tools)](https://hub.docker.com/r/volkerraschek/network-tools)
This project, hosted on This project contains all sources to build the container image
[git.cryptic.systems](https://git.cryptic.systems/volker.raschek/network-tools), `docker.io/volkerraschek/network-tools`. The primary goal of the image is only
contains only files to build the container image. The container image contains to contain some network tools to debug container based environments like docker
network tools to analyse or monitor network communication. This can be helpful or kubernetes.
in a containerized environment.
## Usage ## Usage

4
docker-compose.yml Normal file
View File

@ -0,0 +1,4 @@
version: "3"
services:
network-tools:
image: volkerraschek/network-tools:latest

View File

@ -6,8 +6,14 @@ spec:
containers: containers:
- name: network-tools - name: network-tools
image: docker.io/volkerraschek/network-tools:latest image: docker.io/volkerraschek/network-tools:latest
command: [ "sleep", "3600" ]
imagePullPolicy: Always imagePullPolicy: Always
resources:
limits:
cpu: 250m
memory: 250Mi
requests:
cpu: 100m
memory: 125Mi
securityContext: securityContext:
capabilities : capabilities :
add: add: