SlideShare a Scribd company logo
G3 Summit
Dockerize your Grails!
Iván López - @ilopmar
➢ Iván López - @ilopmar
➢ Groovy & Grails developer
Member of Grails team at OCI
➢ @MadridGUG coordinator
http://www.madridgug.com
➢ Greach organizer (@greachconf)
http://greachconf.com
➢ Speaker: SpringOne 2GX, GR8Conf, Codemotion,
GeeCon, Spring IO, Greach, JavaCro, RigaDevDay,...
About me...
1.
Problems
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
If there was
another way...
Please, kill me to
end my pain!
G3 Summit 2016 - Dockerize your Grails!
2.
Docker
Basics about Docker
➢ Portable runtime for the app
➢ Run each app in its own isolated container
➢ Eliminate concerns about compatibility on different platforms
➢ Like a VM without the overhead of a VM
➢ Lightweight than a VM
Hypervisor
Host OS
Server
VM
App
A
Guest
OS
Bins/
Libs
App
A'
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
Docker
Host OS
Server
Bins/Libs
Container
Bins/Libs
VM vs Docker
A
p
p
A
A
p
p
A'
A
p
p
B
A
p
p
B'
A
p
p
B'
A
p
p
B'
$ docker run --rm ubuntu echo “Hello G3Summit!”
Hello G3Summit!
Basics
$ docker run --rm java:9 java -version
openjdk version "9-Debian"
OpenJDK Runtime Environment (build 9-Debian+0-9b140-1)
OpenJDK 64-Bit Server VM (build 9-Debian+0-9b140-1, mixed mode)
$ alias java="docker run --rm java:9 java"
$ java -version
Basics
Create image
FROM nginx:1.11.5
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Dockerfile
<h1>Hello G3Summit!</h1>
index.html
$ docker build -t g3summit .
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM nginx:1.11.5
---> 6dde4f9ae735
Step 2 : COPY index.html /usr/share/nginx/html/
---> c1c0f4eeffe4
Removing intermediate container 08fb8441e6be
Step 3 : EXPOSE 80
---> Running in 4d6151c06c9b
---> e07151354dc9
Removing intermediate container 4d6151c06c9b
Step 4 : CMD nginx -g daemon off;
---> Running in 8edd425ce757
---> ef945069377f
Removing intermediate container 8edd425ce757
Successfully built ef945069377f
Create image
$ docker run --rm -p 1234:80 g3summit
Running our image
$ docker run -it -p 1234:80 greach
Running our image
$ docker run --rm -p 1234:80 g3summit
3.
Grails & Docker
Let’s fix the problems!
➢ Install Docker
➢ Clone the repo
➢ Run script
➢ Profit!
Our application
Producer Consumer
Debian 8 Java 8 RabbitMQ 3.6 Postgres 9.4Grails 3.2.3
Two options
The easy way
One image to rule them all
The easy way
➢ Everything installed on the same container
➢ More than one process per container (!!)
➢ Easy to maintain and use
➢ Focused only on development
Two options
The flexible way
Orchestration to the rescue
The flexible way
➢ Each application in different container
➢ Only one process per container
➢ More complicated to maintain
➢ More flexible and ready for other environments
4.
Demo
5.
Summary
Summary
Easy to start being
productive
Developers have the
exact environment
Control the exact
version of everything
Orchestration is
more complicated
But it's more
powerful
Everyone is happy
Thank you!
Questions?
http://bit.ly/g3summit-docker
@ilopmar
lopez.ivan@gmail.com
https://github.com/ilopmar
Iván López

More Related Content

PDF
GR8Conf US 2017 - Dockerize your Grails!
PDF
Greach 2016 dockerize your grails
PPTX
Docker session I: Continuous integration, delivery and deployment
PPTX
Docker session III: Dockerfile
PDF
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...
PPTX
Docker session II: Introduction to Docker
PDF
Docker & GitLab
ODP
Docker. Micro services for lazy developers
GR8Conf US 2017 - Dockerize your Grails!
Greach 2016 dockerize your grails
Docker session I: Continuous integration, delivery and deployment
Docker session III: Dockerfile
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...
Docker session II: Introduction to Docker
Docker & GitLab
Docker. Micro services for lazy developers

What's hot (20)

PDF
Paris Container Day 2016 : Deep dive dc-os ci-cd (Mesosphere & Container Solu...
PDF
TDC2018SP | Trilha Containers - CI/CD com Docker e Drone
PPTX
Vagrant step-by-step guide for Beginners
PPTX
Docker e git lab
PDF
Docker from a team perspective
PDF
Docker for developers
PDF
Workshop - Golang language
PPTX
It works on my computer
PDF
Vagrant 의 활용
PDF
Vagrant for Development
PDF
Docker at MoneyBird
PDF
開発の心得
PDF
Advanced microservices with .Net
PDF
Vagrant up-and-running
ODP
What grunt?
PDF
Vagrantfordevops
PDF
Docker workshop
PDF
Simplestack
PDF
Lets isolate a process with no container like docker
PDF
Gitlab - Creating C++ applications with Gitlab CI
Paris Container Day 2016 : Deep dive dc-os ci-cd (Mesosphere & Container Solu...
TDC2018SP | Trilha Containers - CI/CD com Docker e Drone
Vagrant step-by-step guide for Beginners
Docker e git lab
Docker from a team perspective
Docker for developers
Workshop - Golang language
It works on my computer
Vagrant 의 활용
Vagrant for Development
Docker at MoneyBird
開発の心得
Advanced microservices with .Net
Vagrant up-and-running
What grunt?
Vagrantfordevops
Docker workshop
Simplestack
Lets isolate a process with no container like docker
Gitlab - Creating C++ applications with Gitlab CI
Ad

Similar to G3 Summit 2016 - Dockerize your Grails! (20)

PDF
Real-World Docker: 10 Things We've Learned
PDF
Perspectives on Docker
PDF
Docker in everyday development
PDF
Docker primer and tips
PDF
Java and Container - Make it Awesome !
PDF
Drone CI/CD 自動化測試及部署
PDF
Containers without docker | DevNation Tech Talk
PDF
Headless Android at AnDevCon3
PDF
Making kubernetes simple for developers
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
PDF
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
PDF
Container Days
PDF
Introduction to Docker and Containers
PDF
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
PDF
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
PDF
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
PDF
Adventures in docker compose
PPTX
Настройка окружения для кросскомпиляции проектов на основе docker'a
PDF
DCSF 19 Building Your Development Pipeline
PPTX
Multi-stage Docker builds to make building easy!
Real-World Docker: 10 Things We've Learned
Perspectives on Docker
Docker in everyday development
Docker primer and tips
Java and Container - Make it Awesome !
Drone CI/CD 自動化測試及部署
Containers without docker | DevNation Tech Talk
Headless Android at AnDevCon3
Making kubernetes simple for developers
Docker 0.11 at MaxCDN meetup in Los Angeles
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
Container Days
Introduction to Docker and Containers
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Adventures in docker compose
Настройка окружения для кросскомпиляции проектов на основе docker'a
DCSF 19 Building Your Development Pipeline
Multi-stage Docker builds to make building easy!
Ad

More from Iván López Martín (20)

PDF
CommitConf 2025 - Spring AI: IA Avanzada para desarrolladores Spring
PDF
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
PDF
CommitConf 2024 - Spring Boot <3 Testcontainers
PDF
Voxxed Days CERN 2024 - Spring Boot <3 Testcontainers.pdf
PDF
VMware - Testcontainers y Spring Boot
PDF
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
PDF
Codemotion Madrid 2023 - Testcontainers y Spring Boot
PDF
CommitConf 2023 - Spring Framework 6 y Spring Boot 3
PDF
Construyendo un API REST con Spring Boot y GraalVM
PDF
jLove 2020 - Micronaut and graalvm: The power of AoT
PDF
Codemotion Madrid 2020 - Serverless con Micronaut
PDF
JConf Perú 2020 - ¡Micronaut en acción!
PDF
JConf Perú 2020 - Micronaut + GraalVM = <3
PDF
JConf México 2020 - Micronaut + GraalVM = <3
PDF
Developing Micronaut Applications With IntelliJ IDEA
PDF
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
PDF
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
PDF
Greach 2019 - Creating Micronaut Configurations
PDF
VoxxedDays Bucharest 2019 - Alexa, nice to meet you
PDF
JavaDay Lviv 2019 - Micronaut in action!
CommitConf 2025 - Spring AI: IA Avanzada para desarrolladores Spring
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
Voxxed Days CERN 2024 - Spring Boot <3 Testcontainers.pdf
VMware - Testcontainers y Spring Boot
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud Gateway
Codemotion Madrid 2023 - Testcontainers y Spring Boot
CommitConf 2023 - Spring Framework 6 y Spring Boot 3
Construyendo un API REST con Spring Boot y GraalVM
jLove 2020 - Micronaut and graalvm: The power of AoT
Codemotion Madrid 2020 - Serverless con Micronaut
JConf Perú 2020 - ¡Micronaut en acción!
JConf Perú 2020 - Micronaut + GraalVM = <3
JConf México 2020 - Micronaut + GraalVM = <3
Developing Micronaut Applications With IntelliJ IDEA
CommitConf 2019 - Micronaut y GraalVm: La combinación perfecta
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Greach 2019 - Creating Micronaut Configurations
VoxxedDays Bucharest 2019 - Alexa, nice to meet you
JavaDay Lviv 2019 - Micronaut in action!

Recently uploaded (20)

PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Approach and Philosophy of On baking technology
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Mushroom cultivation and it's methods.pdf
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Tartificialntelligence_presentation.pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
A Presentation on Touch Screen Technology
Heart disease approach using modified random forest and particle swarm optimi...
NewMind AI Weekly Chronicles - August'25-Week II
DP Operators-handbook-extract for the Mautical Institute
Approach and Philosophy of On baking technology
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Mushroom cultivation and it's methods.pdf
1 - Historical Antecedents, Social Consideration.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Getting Started with Data Integration: FME Form 101
Digital-Transformation-Roadmap-for-Companies.pptx
Chapter 5: Probability Theory and Statistics
Building Integrated photovoltaic BIPV_UPV.pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Tartificialntelligence_presentation.pptx
OMC Textile Division Presentation 2021.pptx
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Touch Screen Technology

G3 Summit 2016 - Dockerize your Grails!