docker pour le développement java
TRANSCRIPT
Docker pour le dev Java
1. Les besoins du dev
1. Les besoins du dev
●
●
●
1. Les besoins du dev
●
●
●
●
●
1. Une solution ?
❏
❏
❏
❏
❏
1. Une solution ?
1. Une solution ?
1. Outillage Docker
docker engine
docker-machine boot2docker
docker-compose fig
1. Installation
1. Installation
apt-get install docker-compose
brew cask install virtualbox
brew install docker-compose
1. Utilisation
docker-machine create --driver virtualbox dev
docker-machine start dev && eval "$(docker-machine env dev)"
docker-machine stop dev
1. Images
Cas d’utilisation
●
●
●
●
1. Environnement de construction
1. Environnement de construction
●
●
●
1. Environnement de construction
Dockerfile
FROM ubuntu:14.04MAINTAINER [email protected]################################################## Build Box with Java 6u45 and Maven 3.1.1#################################################
# Make sure repo is updatedENV DEBIAN_FRONTEND noninteractiveRUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.listRUN apt-get update# Needed to use add-apt-repositoryRUN sudo apt-get install -y --no-install-recommends \
python-software-properties \software-properties-common
# Install Java 6 from PPARUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \ echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections && \ add-apt-repository -y ppa:webupd8team/java && \ apt-get update && \ apt-get install -y oracle-java6-installerENV JAVA_HOME /usr/lib/jvm/java-6-oracle/ENV PATH $JAVA_HOME/bin:$PATH
# Install Maven 3.1.1 from binariesENV MAVEN_VERSION 3.1.1RUN wget -nv http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz && \
tar -zxf apache-maven-$MAVEN_VERSION-bin.tar.gz -C /usr/local && \rm apache-maven-*.tar.gz
ENV M2_HOME /usr/local/apache-maven-$MAVEN_VERSIONENV PATH $M2_HOME/bin:$PATH
VOLUME /codeWORKDIR /codeENTRYPOINT ["mvn"]CMD ["-version"]
1. Environnement de construction
cd /dir/of/my/Dockerfile
docker build -t mvnjava6 .
docker run mvnjava6
cd /dir/of/my/pom
docker run -v "$(pwd)":/code mvnjava6 package
●
●
1. Environnement d'exécution
1. Environnement d'exécution
●
●
●
●
●
1. Environnement d'exécution
docker-compose.yml ftp: image: andrewvos/docker-proftpd ports: - "21:21" volumes: - ./TMP/ftp:/ftp environment: - USERNAME=username - PASSWORD=password
jetty: build: ./jetty ports: - "8082:8080" volumes: - ./WEB/little-app/target/little-app.war:/opt/jetty/webapps/little-app.war
jboss: build: ./jboss ports: - "8009:8009" - "8787:8787" links: - jetty - ftp volumes: - ./RESSOURCES/src/ressources/fig/:/data/ressources/fig/ # War - ./WEB/big-app/web/:/local/jboss/jboss-6.1.0.Final/server/default/deploy/big-app-3.29.0-SNAPSHOT.war/ - ./WEB/big-app/target/classes/:/local/jboss/jboss-6.1.0.Final/server/default/deploy/big-app-3.29.0-SNAPSHOT.war/WEB-INF/classes/ #Java - ./RESSOURCES/fig/java.security:/usr/lib/jvm/java-6-oracle/jre/lib/security/java.security #jboss - ./RESSOURCES/fig/oracle-ds.xml:/local/jboss/jboss-6.1.0.Final/server/default/deploy/oracle-ds.xml
apache: build: ./apache/ ports: - "80:80" - "90:90" - "89:89" - "443:443" volumes: - ./RESSOURCES/statics/:/data/ressources/apache/ links: - jboss
1. Environnement de construction
cd /dir/of/my/docker-compose
docker-compose build
docker-compose up -d --force-recreate
docker-compose logs jbossdocker exec -it jboss bash
1. Environnement d'exécution
●
●
●
●
●
●
●
●
1. Partage des sources
Comment y arriver ?
1. Apprentissage
●
●
●
1. Apprentissage
1. Apprentissage
1. Apprentissage
1. Apprentissage
1. Une solution ?
❏
❏
❏
❏
❏
1. Une solution !
1. Questions ?
1. Questions ?