Skip to content

Instantly share code, notes, and snippets.

@shykes
shykes / dagger-dependency-jam.cue
Created November 9, 2021 17:53
Looking for clean dependency API with Guillaume
registryURL: string
runRegistry: docker.#Run & {
args: ["registry", "-h", registryURL] // bla bla
// Wait for registry port to be available
hooks: post: waitRegistry: {
args: """
while true; do
curl -L -S "localhost:foo" && exit
sleep 1
@shykes
shykes / dev.sh
Last active August 7, 2019 15:06
#!/bin/bash
set -ex
update() {
mkdir -p ~/bin
curl -L -o ~/bin/dev.sh https://gist.githubusercontent.com/shykes/7bf0704be14a0a9288d7dfe98617c208/raw/dev.sh
chmod +x ~/bin/dev.sh
}

Keybase proof

I hereby claim:

  • I am shykes on github.
  • I am shykes (https://keybase.io/shykes) on keybase.
  • I have a public key ASAG6dMVHHD2CVy-aMBp-QRCYo--xvC2O4aQXhHUTN7dYQo

To claim this, I am signing this object:

@shykes
shykes / gist:7776351
Last active December 30, 2015 04:29

Simple ambassador container

The Simple Ambassador Container (let's just call it the ambassador) is a reusable container which can be added to your stack to represent a remote service. Using an ambassador your application can discover remote services using docker's standard links features.

Usage

Example usage:

REDIS_REMOTE_IP=1.2.3.4
type Driver interface {
Create(id, parent string) error
Remove(id string) error
Get(id string) (dir string, err error)
Diff(id string) (archive.Archive, error)
DiffSize(id string) (bytes int64, err error)
Changes(id string) ([]Change, error)
interface GraphBackend {
Init(home string) error
Nuke() error
Create(img *Image, layer Archive) error
Delete(img *Image) error
Mount (img *Image, dest string) error
UnmountAll (img *Image) error
DiffList(*Image, dest string) ([]Change, error)
DiffLayer(*Image, dest string) (Archive, error)
}
@shykes
shykes / links.md
Last active December 24, 2015 03:09 — forked from crosbymichael/links.md
func TestTree(t *testing.T) {
tree := NewTree("/path/to/db")
// List all root containers
names, _ := tree.List("/")
for _, name := range names {
fullPath := path.Join("/", name)
id, _ := tree.Get(fullPath)
fmt.Printf("%s is a link to %s\n", fullPath, id)
REDIS=$(docker run -d crosbymichael/redis)
docker run -link $REDIS:6379:redis -t -i 71cba4d74d62 bash
root@7c1879d423b6:/# cat app.py
import docker
from redis import Redis
ip, port = docker.require('redis')
r = Redis(host=ip, port=int(port))
@shykes
shykes / gist:6196230
Created August 9, 2013 19:02
Discussion of logging improvements to docker
10:57 shykes: lastly, we have 2 big limitations for real-world use: logging and reboots
10:57 klizhentas: shykes: can you elaborate on logging?
10:57 shykes: klizhentas: several people have asked me how to integrate their docker setup into syslog or another logging system
10:57 shykes: it's not practical
10:58 shykes: 1) I can't just get a firehose of every container's logs (let alone of a smart subset of them)
10:59 tobstarr: shykes: I would like to have at least some syslog forwarded booted in each container
10:59 backjlack: systemd allows you to do this.
11:00 shykes: 2) it's hard to get a stream of a container's logs in a way that is both reliable and continuous
11:00 fkautz: so, is the problem that they can't hook into syslogd or that it's impracticle for us to provide syslogd support?
11:00 klizhentas: isn't that app specific - so I can tell my container to talk to whatever loggin daemon out there?