Heroku Dockerの使い所

Preview:

Citation preview

Heroku Docker@kon_yu

Docker

Docker

Docker

Docker

( )

Heroku Docker

Heroku Docker

Docker Heroku

Container Registry and Runtime(https://devcenter.heroku.com/articles/container-registry-and-runtime)

Docker Hub

• Dockerhub• Docker• /•

• Dockerhub• DockerImage DockerHub http://qiita.com/kon_yu/items/7c40f4dfbd1cce006ce7

Buildpack

• Heroku• (Ruby Node

• Buildpack Heroku

• Buildpack• Buildpack API https://devcenter.heroku.com/articles/buildpack-api

• Buildpack• Using Multiple Buildpacks for an apphttps://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app

Docker Buildpack

Docker• Ruby on Rails

• Production Staging

• Production Heroku Postgres Staging

• DB

• AWS S3 Puroduction Staging

• Elasticsearch

Docker

HerokuCLI PostgreSQL • HerokuCLI Ruby • HerokuCLI

AWS CLI S3

• AWS CLI Python

• AWS CLI

Docker

Github https://github.com/konyu/heroku-aws-backup

Docker hub https://hub.docker.com/r/konyu/heroku-aws-backup/

AWS Heroku API

AWS Heroku API

URL

AWS access key and secret key http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSCredentials.html

Heroku api token https://devcenter.heroku.com/articles/authentication#api-token-storage

git@github.com:konyu/heroku-aws-backup.git cd heroku-aws-backup docker build --rm -t heroku-aws-backup .

--env AWS Heroku

docker run -it --rm --env AWS_ACCESS_KEY_ID=xxxxxxx \ --env AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx \ --env AWS_DEFAULT_REGION=ap-northeast-1 \ --env HEROKU_API_KEY=xxxxxxxxxxxxx \ heroku-aws-backup bash

echo "== worker =="heroku ps:scale worker=0 -a APP_NAME

echo "== DB =="heroku pg:copy ProductionAPP::HEROKU_POSTGRESQL_COLOR_URL HEROKU_POSTGRESQL_COLOR_URL --confirm APP_NAME -a APP_NAME

echo "== Rails job =="heroku run rake jobs:clear -a APP_NAME

echo "== =="heroku run rake sync:mask_user_info -a APP_NAME

echo "== elasticsearch =="heroku run rake sync:backup_elasticsearch -a APP_NAME

echo "== s3 =="aws s3 sync --delete --acl public-read s3:/FROM_BUCKET s3://TO_BUCKET

echo "== Worker =="heroku ps:scale worker=1 -a APP_NAME

Heroku

Heroku cliHeroku CLI URL OS

https://devcenter.heroku.com/articles/heroku-command-line

Heroku container registry

heroku plugins:install heroku-container-registry

HerokuHeroku

heroku login> enter your id and password

Create application( )> heroku create APP_NAME_YOU_WANT

Modify application( )> git remote heroku

heroku git:remote -a APP_NAME_YOU_WANT

Heroku> heroku container:push web

Heroku

heroku config:set AWS_ACCESS_KEY_ID=xxxxxxx AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxx AWS_DEFAULT_REGION=ap-northeast-1 HEROKU_API_KEY=xxxxx -app APP_NAME_YOU_WANT

Scheduler

heroku addons:create scheduler:standard -app APP_NAME_YOU_WANT

Scheduler

heroku run bash -a APP_NAME

• Docker Heroku • • • Heroku

• Heroku Buildpack

Heroku

• Docker

Heroku