Skip to content

Instantly share code, notes, and snippets.

@erichelgeson
Last active January 27, 2020 15:10
Show Gist options
  • Save erichelgeson/6c2ef4b423d1ea8fac48 to your computer and use it in GitHub Desktop.
Save erichelgeson/6c2ef4b423d1ea8fac48 to your computer and use it in GitHub Desktop.
Sentry Docker
SENTRY_SECRET_KEY=longsecrethere
DOCKERPREFIX=eric
cat <<-EOF > requirements.txt
sentry-slack==0.5.0
EOF
cat <<-EOF > Dockerfile
FROM sentry:8.5-onbuild
EOF
echo "Starting redis & pg"
docker run -d --name sentry-redis redis
docker volume create --name psqldata
docker run -d --name sentry-postgres -v psqldata:/var/lib/postgresql/data/ -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
echo "Configuring Sentry"
# Rebuilding so ONBUILD happens
docker build -t $DOCKERPREFIX/sentry .
docker run -it --rm --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry generate-secret-key
docker run -it --rm -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry upgrade
echo "Starting Sentry web and workers"
docker run -d -e DOCKER_FIX='' -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY -p 9000:9000 --name sentry-web --link sentry-redis:redis --link sentry-postgres:postgres $DOCKERPREFIX/sentry
docker run -d -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY --name sentry-celery-beat --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry run cron
docker run -d -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY --name sentry-celery1 --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry run worker
# cleanup
# docker stop $(docker ps -a -q)
# docker rm $(docker ps -a -q)
# docker volume rm psqldata
# File: build.sh
#!/bin/bash -ex
source vars.sh
echo "Building sentry $SENTRY_VERSION"
echo "sentry-plugins==$SENTRY_VERSION" > requirements.txt
echo "FROM sentry:$SENTRY_VERSION-onbuild" > Dockerfile
docker build -t $DOCKERPREFIX/sentry-$SENTRY_VERSION .
docker run -it --rm -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry-$SENTRY_VERSION upgrade
docker run -d -e DOCKER_FIX='' -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY -p 9000:9000 --name sentry-web-$SENTRY_VERSION --link sentry-redis:redis --link sentry-postgres:postgres $DOCKERPREFIX/sentry-$SENTRY_VERSION
docker run -d --name sentry-cron-$SENTRY_VERSION -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry-$SENTRY_VERSION run cron
docker run -d --name sentry-worker-$SENTRY_VERSION -e SENTRY_SECRET_KEY=$SENTRY_SECRET_KEY --link sentry-postgres:postgres --link sentry-redis:redis $DOCKERPREFIX/sentry-$SENTRY_VERSION run worker
# File: start.sh
#!/bin/bash
source vars.sh
docker start sentry-redis
docker start sentry-postgres
docker start sentry-web-$SENTRY_VERSION
docker start sentry-worker-$SENTRY_VERSION
docker start sentry-cron-$SENTRY_VERSION
sleep 2
docker ps
# File: stop.sh
#!/bin/bash
source vars.sh
docker stop sentry-web-$SENTRY_VERSION
docker stop sentry-cron-$SENTRY_VERSION
docker stop sentry-worker-$SENTRY_VERSION
docker stop sentry-redis
docker stop sentry-postgres
sleep 2
docker ps
# File: vars.sh
export SENTRY_SECRET_KEY=<longsecrethere>
export DOCKERPREFIX=eric
export SENTRY_VERSION=8.14.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment