Heroku Docker@kon_yu
Docker
Docker
Docker
Docker
( )
Heroku Docker
Docker
• Docker
• Docker 2013
• ) http://www.atmarkit.co.jp/ait/articles/1701/30/news037.html
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
[email protected]: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