Skip to content

Instantly share code, notes, and snippets.

@sideshowbandana
Created January 18, 2019 08:00
Show Gist options
  • Save sideshowbandana/bb65501527c6e1d17bbe5582db97cb4b to your computer and use it in GitHub Desktop.
Save sideshowbandana/bb65501527c6e1d17bbe5582db97cb4b to your computer and use it in GitHub Desktop.
init-db:
machine: true
environment:
- DATABASE_USER: "deployer"
- RAILS_ENV: "staging"
- DATABASE_DEPLOYMENT: "deployment/my-postgresql"
- DATABASE_FORWARD_PORT: 5432
- DATABASE_PORT: 5432
- DATABASE_HOST: "postgres_db"
- GOOGLE_PROJECT_ID: "my_proj"
- GOOGLE_COMPUTE_ZONE: "my_zone"
- GOOGLE_CLUSTER_NAME: "my-cluster"
- DOCKER_NET: "db-net"
steps:
- checkout
- run:
name: Login to docker registry
command: |
echo "$GCLOUD_SERVICE_KEY" | docker login -u _json_key --password-stdin https://gcr.io
- run:
name: Create docker network
command: |
docker network create "$DOCKER_NET"
- run:
name: Launch Postgres
command: |
docker run --rm \
-e GCLOUD_SERVICE_KEY="$GCLOUD_SERVICE_KEY" \
-e GOOGLE_PROJECT_ID="$GOOGLE_PROJECT_ID" \
-e GOOGLE_COMPUTE_ZONE="$GOOGLE_COMPUTE_ZONE" \
-e GOOGLE_CLUSTER_NAME="$GOOGLE_CLUSTER_NAME" \
-e DATABASE_FORWARD_PORT="$DATABASE_FORWARD_PORT" \
-e DATABASE_PORT="$DATABASE_PORT" \
-e DATABASE_DEPLOYMENT="$DATABASE_DEPLOYMENT" \
--name "$DATABASE_HOST" \
-p 5432:5432 \
--network="$DOCKER_NET" \
--entrypoint "/bin/bash" \
gcr.io/my-build/deploy_machine:latest -c "/scripts/db_connect.sh && sleep infinity"
background: true
- run:
name: Create DB
command: |
docker run \
-e RAILS_MASTER_KEY=$RAILS_MASTER_KEY \
-e RAILS_ENV=$RAILS_ENV \
-e DATABASE_USER=$DATABASE_USER \
-e DATABASE_FORWARD_PORT=$DATABASE_FORWARD_PORT \
-e DATABASE_PORT=$DATABASE_PORT \
-e DATABASE_HOST=$DATABASE_HOST \
-e CIRCLE_BRANCH=$CIRCLE_BRANCH \
-e CIRCLE_PROJECT_REPONAME=$CIRCLE_PROJECT_REPONAME \
--network="$DOCKER_NET" \
--link "$DATABASE_HOST" \
--entrypoint="/bin/bash" \
gcr.io/my-build/my_proj:latest \
-c "cd /app && ./scripts/init_db.sh"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment