GitHub * TravisCI * Docker Repository(DockerHub, ECR)の連携
GitHub * TravisCI * Docker Repository の連携
TravisCI を使うことになりちょっと勉強しました。
CircleCIやGitLab CIとそんなに変わらないdockerが使えるCIです。
ソースは github にあげました。
ファイル
Djangoの雛形作成
一応、Djangoの雛形作成した手順です。
pyenv, Pipenvはセットアップ済です。
$ pipenv --python 3.6
$ pipenv install django==2.2.3
$ pipenv shell
(travis_ci) $ django-admin startproject travis_ci
(travis_ci) $ cd travis_ci
(travis_ci) $ python manage.py migrate
.travis.yml
GitHubでタグを打ったら、Docker Hub, ECRにDjango雛形が入ったdockerイメージをプッシュします。
language: python
services:
- docker
env:
global:
- APP_NAME=sample_travis_ci
# awscli
- PATH=$HOME/.local/bin:$PATH
# Docker Hub
- DOCKER_HUB_ACCOUNT=va034600
# ECR
- AWS_DEFAULT_REGION=ap-northeast-1
before_install:
# ECR
- pip install -U pip
- pip install awscli
script:
- echo "script"
after_success:
- docker --version
- docker build -t $APP_NAME:latest -f docker/Dockerfile .
- docker images
# Docker Hub
- echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_ACCOUNT" --password-stdin
# Docker Hub public
- docker tag $APP_NAME:latest $DOCKER_HUB_ACCOUNT/${APP_NAME}_pub:${TRAVIS_TAG}
- docker push $DOCKER_HUB_ACCOUNT/${APP_NAME}_pub:${TRAVIS_TAG}
# Docker Hub private
- docker tag $APP_NAME:latest $DOCKER_HUB_ACCOUNT/$APP_NAME:${TRAVIS_TAG}
- docker push $DOCKER_HUB_ACCOUNT/$APP_NAME:${TRAVIS_TAG}
# ECR
- $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)
- docker tag $APP_NAME:latest $AWS_ECR_ACCOUNT.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$APP_NAME:${TRAVIS_TAG}
- docker push $AWS_ECR_ACCOUNT.dkr.ecr.ap-northeast-1.amazonaws.com/$APP_NAME:${TRAVIS_TAG}
branches:
only:
- "/^v?[0-9\\.]+/"
Dockerfile
FROM python:3.6.10
WORKDIR /usr/src/app
RUN pip install --upgrade pip && pip install pipenv
COPY ./Pipfile /usr/src/app/Pipfile
COPY ./Pipfile.lock /usr/src/app/Pipfile.lock
RUN pipenv install --system
COPY . /usr/src/app/
CMD tail -f /dev/null
各種サービスの設定
TravisCI
TravisCI の Environment Variablesの設定です。
Docker Repository(DockerHub)
Docker Repository(ECR)
ECR -> リポジトリ -> リポジトリ でrepositoryを作成しました。
起動
最後にDocker Hubに登録したdockerイメージをpullして起動確認しました。
docker-compose.yml
version: '3'
services:
api:
image: va034600/sample_travis_ci_pub:v2.0.10
working_dir: /usr/src/app/travis_ci
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
$ docker-compose up
ブラウザで確認できたら終了です。
Author And Source
この問題について(GitHub * TravisCI * Docker Repository(DockerHub, ECR)の連携), 我々は、より多くの情報をここで見つけました https://qiita.com/va034600/items/80aa988d02da4a34802b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .