Maksym Prokopov personal blog
Idea is a something worth sharing

Configure Docker Engine logs to AWS CloudWatch

01.01.0001

Gitlab: continuous delivery setup for Clojure/Java with Docker

01.01.0001

Recently I was doing a https://github.com/mprokopov/it-service-sse and I though it should be a good idea to implement automatic build and deployment to docker registry container. I already have Gitlab installed and started to play around.

Long story short, here my .gitlab-ci.yml which took me a couple of days to figure out what is the “artifact” in Gitlab and how is it suppose to survive between artifact builds and docker builds.

My current setup has two stages, java build and then docker build. At the first stage we use clojure:lein-2.7.1-alpine, which is quite small, to build jar file from the sources. Then we try to assemble docker container and reuse artifact from the previous build. I was lucky enough to discover that artifact could be saved with help of “cache” option in YML file which preserves folder in “path” for the next build.

Read More…

How to speed up ruby bundle gems fetch

01.01.0001

Short answer: use https://github.com/geminabox/geminabox for caching gems on your own host, or in your local network.

I was using bundler’s vendor/cache in docker container, but with such improvement my container size grown up to 1,2Gb very quickly.

Supply following settings to your geminabox container
RUBYGEMS_PROXY=true

https://medium.com/magnetis-backstage/how-to-cache-bundle-install-with-docker-7bed453a5800

Keycloak

01.01.0001
docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:11.0.3

One account. All of Google.

01.01.0001

One account. All of Google.

Originally published at www.blogger.com.

One account. All of Google.

01.01.0001

One account. All of Google.

Originally published at www.blogger.com.

Pharo testing

01.01.0001

Suprisingly, Pharo turns out to be interesting solution for managing web pages fully by the pure OO classes and objects.

Ruby tricks

01.01.0001

Use binding object to run code within other object context.
https://ruby-doc.org/core-2.2.0/Binding.html

stderr output

highlight your code and insert in presentation

https://gist.github.com/jimbojsb/1630790

Speeding up Ruby on Rails in docker

01.01.0001

Speeding up Ruby on Rails in docker

  1. Bundle package will create a cached copy, so bundler in docker will not fetch all dependencies all the time.

bundle package

  1. Create separate bundler data volume to perisist bundle between builds. Set BUNDLE_PATH to data volume. You can include this option just for development docker-compose.yml file and not to include in production.

version: “2” services: memcached: image: memcached networks: — back-tier redis: image: redis ports: [“6379”] networks: — back-tier db: image: mysql:5 volumes: — ./sql:/docker-entrypoint-initdb.d — mysql:/var/lib/mysql networks: — back-tier sse: image: mprokopov/sse build: context: sse/. command: “bundle exec rackup — host 0.0.0.0 — port 9292” environment: — RACK_ENV=production ## docker database settings in config.yml ports: — “9292:9292” links: — redis — db depends_on: — db — redis networks: — back-tier — front-tier worker: image: mprokopov/itservice_web_dev command: “bundle exec rake environment resque:work” environment: — QUEUE=* links: — db — redis depends_on: — db — redis networks: — back-tier worker-schedule: image: mprokopov/itservice_web_dev command: “bundle exec rake environment resque:scheduler” links: — db — redis depends_on: — redis networks: — back-tier search: image: mprokopov/itservice_search build: ./search volumes: — search-data:/search depends_on: — db links: — db networks: — back-tier expose: — “9306” web: ports: — “3000:3000” environment: — LETTER_OPENER=letter_opener_web — RAILS_SERVE_STATIC_FILES=true — SLACK_NOTIFICATION=false — EMAIL_NOTIFICATION=false — SLACK_WEBHOOK_CHANNEL=#events_test — STREAM_API=http://localhost:9292 depends_on: — db — redis links: — db — redis — search networks: — back-tier — front-tier volumes: — search-data:/search volumes: search-data: mysql: networks: back-tier: front-tier:

Read More…

U

01.01.0001

U