Skip to content

Instantly share code, notes, and snippets.

View ggtools's full-sized avatar

Christophe Labouisse ggtools

View GitHub Profile
@ggtools
ggtools / containerHelper.py
Created November 17, 2014 15:35
Script to retrieve some information/metrics for a Docker container.
#!/usr/bin/env python
__author__ = 'Christophe Labouisse'
import argparse
import re
import os
from docker import Client
from docker.utils import kwargs_from_env
@ggtools
ggtools / countContainers.sh
Created November 17, 2014 13:27
A simple script to count the containers on a Docker host.
#!/bin/bash
function countContainers() {
docker ps -q $1 | wc -l
}
function countCrashedContainers() {
docker ps -a | grep -v -F 'Exited (0)' | grep -c -F 'Exited ('
}
@ggtools
ggtools / pg_values.py
Last active June 5, 2019 05:48
Implementation of PostgreSQL values construct
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.sql.expression import FromClause
class values(FromClause):
named_with_column = True
def __init__(self, columns, *args, **kw):
self._column_args = columns
self.list = args
self.alias_name = self.name = kw.pop('alias_name', None)
@ggtools
ggtools / create_secrets.sh
Created February 13, 2017 06:54
Docker Secrets & Letsencrypt automation
#!/usr/bin/env bash
LE_ARC_DIR="etc/archive"
SECRETS=$(docker secret ls | tail -n +2 | awk '{print $2}')
find $LE_ARC_DIR -name 'fullchain*.pem' -o -name 'privkey*.pem' | sed "s,$LE_ARC_DIR/,," | while read file
do
base_file=$(basename $file .pem | sed -r 's/[0-9]+$//')
version=$(basename $file .pem | sed -r 's/^.*?([0-9]+)$/\1/')
@ggtools
ggtools / convoy.service
Created February 3, 2017 08:10
Systemd unit for convoy
[Unit]
Description=Convoy Daemon
Before=docker.service
[Service]
ExecStart=/usr/local/bin/convoy daemon --drivers vfs --driver-opts vfs.path=/path/to/convoy/volume/storage
Type=simple
Restart=always
KillMode=process
@ggtools
ggtools / logstash.conf
Last active October 12, 2017 21:05
Logstash configuration for Docker + Spring Boot applications
input {
gelf {
type => docker
port => 12201
}
}
filter {
multiline {
pattern => "^%{TIMESTAMP_ISO8601}"
@ggtools
ggtools / update_services.sh
Created February 13, 2017 20:53
Update services secrets
#!/usr/bin/env bash
for service in $(docker service ls -f "label=le_auto" -q)
do
echo "Checking service $service"
docker service inspect --format '{{json .Spec.TaskTemplate.ContainerSpec.Secrets}}' $service \
| sed -r 's/("File":\{)/\n/g' \
| sed -n -r '/Name/ s/"[^"]+":"([^"]+)"[^"]+/\1 /g;s/"Mode":([[:digit:]]+)[^[:alnum:]]*/\1 / p' \
| ( while read target uid gid mode secret_id secret
@ggtools
ggtools / Dockerfile
Created February 12, 2017 09:00
Nginx SSL
/run/secrets/site.crt FROM nginx
COPY site.conf /etc/nginx/conf.d/
@ggtools
ggtools / docker-pfw.conf
Last active December 14, 2016 14:56
Shell hack to protect Docker published services from being accessible through a public interfaces
[Service]
EnvironmentFile=-/etc/sysconfig/docker-pfw
ExecStartPost=-/usr/local/bin/docker-pfw.sh start
ExecStopPost=-/usr/local/bin/docker-pfw.sh stop
sed -i 's,"url":"http://updates.jenkins-ci.org/download/plugins/,"url":"http://mirror.mirror.on.the.wall/plugins/,g' /var/jenkins_home/updates/default.json