Skip to content

Instantly share code, notes, and snippets.

View mikeclarke's full-sized avatar

Mike Clarke mikeclarke

View GitHub Profile
@mikeclarke
mikeclarke / env.sh
Created November 23, 2013 21:43
Wrapper script for dealing with environment variables set by the `-link container_name:db` argument. The Dockerfile `ENV` directive will set a static environment variable inside the container, but it's not possible to reference dynamic environment variables (at least not very easily) with ENV. This script should be set as the `ENTRYPOINT` in an …
#!/bin/bash
# Docker doesn't have a great way to set runtime environment variables,
# so use this script to prepare the execution environnment for later processes.
export SQLALCHEMY_DATABASE_URI="postgresql://${DB_PORT_5432_TCP_ADDR}:5432/database_name"
# Execute the commands passed to this script
# e.g. "./env.sh venv/bin/nosetests --with-xunit
exec "$@"
@mikeclarke
mikeclarke / test.sh
Created November 25, 2013 05:39
Simple bash script that uses Docker to build a test container, run tests inside the container, tag successful builds, and clean up after itself.
#!/bin/bash
sudo docker build -t $JOB_NAME/$BUILD_NUMBER .
DB_NAME="/$JOB_NAME-$BUILD_NUMBER-db"
DB_CONTAINER=$(sudo docker run -d -name $DB_NAME <private repository URL>/database-schema)
sudo docker run -link $DB_NAME:db -t $JOB_NAME/$BUILD_NUMBER nosetests
sudo docker tag $JOB_NAME/$BUILD_NUMBER <private repository URL>/${JOB_NAME}-master
sudo docker push <private repository URL>/${JOB_NAME}-master >/dev/null
sudo docker kill ...
sudo docker rm ...
sudo docker rmi ...

Keybase proof

I hereby claim:

  • I am mikeclarke on github.
  • I am mikeclarke (https://keybase.io/mikeclarke) on keybase.
  • I have a public key whose fingerprint is 1F99 4D6A C1D3 771D 46AA E6C3 A597 17C3 18C9 FCDF

To claim this, I am signing this object:

@mikeclarke
mikeclarke / gist:9844487
Created March 28, 2014 22:40
Stacktrace for git caching error
Something went wrong...the Omnibus just ran off the road!
Error raised was:
Expected process to exit with [0], but received '128'
---- Begin output of git --git-dir=/var/cache/omnibus/cache/install_path/opt/st --work-tree=/opt/st add -A -f ----
STDOUT:
STDERR: fatal: Not a git repository: embedded/lib/python2.7/site-packages/sentry/static/CACHE/sentry/bootstrap/../../../../../.git/modules/src/sentry/static/sentry/bootstrap
---- End output of git --git-dir=/var/cache/omnibus/cache/install_path/opt/st --work-tree=/opt/st add -A -f ----
Ran git --git-dir=/var/cache/omnibus/cache/install_path/opt/st --work-tree=/opt/st add -A -f returned 128
@mikeclarke
mikeclarke / sentry.rb
Created March 31, 2014 20:15
sentry software config for omnibus-ruby. should be added to an omnibus project in `config/software/sentry.rb`
name "sentry"
default_version "6.4.4"
dependency "python"
dependency "pip"
build do
command "#{install_dir}/embedded/bin/pip install -I --install-option=\"--install-scripts=#{install_dir}/bin\" #{name}==#{version}"
command "rm -rf #{install_dir}/embedded/lib/python2.7/site-packages/sentry/static/CACHE/sentry/bootstrap/.git*"
command "rm -rf #{install_dir}/embedded/lib/python2.7/site-packages/sentry/static/sentry/bootstrap/.git*"
@mikeclarke
mikeclarke / 01-migrate-db.config
Created November 4, 2014 01:52
.ebextension file for migrating a database with docker
container_commands:
sync_db:
command: "docker run --env DATABASE_URL=`/opt/elasticbeanstalk/bin/get-config environment | jq -r .DATABASE_URL` aws_beanstalk/current-app:latest lein lobos migrate"
leader_only: true