/demo_env

Experimenting container deployment

Primary LanguageShell

DEPLOY

Experimenting with strategies with building and deploying rails app as container image via private registry

Environment

Install docker-compose with Docker BuildKit support

New

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

OLD

sudo curl -L "https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64" -o /tmp/docker-compose
sudo chmod +x /tmp/docker-compose
ls -al /tmp/docker-compose
/tmp/docker-compose --version
#sudo mv /tmp/docker-compose /usr/local/bin
docker-compose --version

Setup

scripts/git_clone.sh

Setup development env

cp -r _demo_secrets .development_secrets
cp _env .env
cp _development_env .development_env

Setup development DB

scripts/development_up.sh
docker exec -it demo_development_host bash
rake db:create
rake db:migrate

Run development

scripts/development_up.sh

# http://localhost:8091/ui

Build base

scripts/base_build.sh --no-cache
BASE_TAG=latest make base_tag

Publish base

BASE_TAG=1.x make base_tag
BASE_TAG=1.x make base_push

Setup production build env

cp _env .env
cp _build_env .build_env

Build production

scripts/production_build.sh --build-arg BASE_TAG=latest --no-cache
BUILD_TAG=latest make build_tag

Publish production build

BUILD_TAG=1.x make build_tag
BUILD_TAG=1.x make build_push

Setup production env

cp -r _demo_secrets .production_secrets
cp _env .env
cp _production_env .production_env

Setup production DB

scripts/production_up.sh
docker exec -it demo_production_host bash
rake db:create
rake db:migrate

Run production

BUILD_TAG=latest make build_tag
BUILD_TAG=latest scripts/production_up.sh

# http://localhost:8092/ui

References

Docker

Bash

Rails

Bundle

nginx