Skip to content

Instantly share code, notes, and snippets.

View mikeclarke's full-sized avatar

Mike Clarke mikeclarke

View GitHub Profile
@mikeclarke
mikeclarke / Code.js
Created September 9, 2013 21:36
Create an Asana project task from the initial email sent to a mailing list. Emails from your company's domain are ignored. Configure this script to run based on an every minute trigger.
function forwardLabelToAsana() {
var asana_email = 'x+FirstNumber@mail.asana.com';
var domain = '@company.com';
var inbound_label = GmailApp.getUserLabelByName('recruiting/recruiting-inbound');
var destination_label = GmailApp.getUserLabelByName('recruiting');
var threads = inbound_label.getThreads();
for (var i = 0; i < threads.length; i++) {
// We only care about the first message in a thread
var messages = threads[i].getMessages();
@mikeclarke
mikeclarke / Dockerfile
Last active December 29, 2015 05:09
Application-specific sample Dockerfile (inherits from a container generated via https://gist.github.com/mikeclarke/7620172)
FROM <your private Docker repository>/python-base
MAINTAINER Mike Clarke <mike@standardtreasury.com>
ADD . /opt/app
RUN virtualenv --no-site-packages /opt/app/venv
RUN /opt/app/venv/bin/pip install -r /opt/app/requirements.txt
WORKDIR /opt/app
ENTRYPOINT ["/opt/app/env.sh"]
@mikeclarke
mikeclarke / Dockerfile
Last active December 29, 2015 05:09
Simple base python Dockerfile (includes some basic OS packages, setuptools, pip, virtualenv, and uwsgi)
FROM ubuntu
MAINTAINER Mike Clarke <mike@standardtreasury.com>
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y language-pack-en
ENV LANGUAGE en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
@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
@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 ...
@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 "$@"