Durée : ~30min
Vous pouvez poser des questions à tout moment !
FROM ubuntu:14.04 MAINTAINER Nicolas Djambazian # install node RUN apt-get update && apt-get install -y nodejs npm COPY back/package.json /src/package.json RUN cd /src; npm install --production # Bundle app source COPY back/ /src EXPOSE 80 ENV APP_PORT 80 CMD ["nodejs", "/src/index.js"]
docker build -t username/my-app . docker run -p 3000:80 -d username/my-app
Sur MacOS, docker tourne dans une machine virtuelle
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v1.10.3 $ curl 192.168.99.100:3000 Hello World!
Docker garde un cache et reconstruit tout depuis le dernier changement.
D'où :
RUN apt-get update && apt-get install -y nodejs npm
Et
COPY back/package.json /src/package.json RUN cd /src; npm install --production # Bundle app source COPY back/ /src
FROM node:4 MAINTAINER Nicolas Djambazian # no node install
# docker-compose.yml back: build: . volumes: - "./back/:/src" ports: - "3000:80" links: - db db: image: mysql:5.7 ports: - "3306:3306" environment: - "MYSQL_ROOT_PASSWORD=rootPassword" - "MYSQL_USER=user" - "MYSQL_PASSWORD=pass" - "MYSQL_DATABASE=database"
Utilisations :
"mysql://user:pass@db:3306/database"
Rappel :
# docker-compose.yml back: build: . links: - db db: image: mysql:5.7 ports: - "3306:3306"
Dans le même Dossier/repo (git submodule éventuellement)
On deversionne le docker-compose.yml (docker-compose.yml.dist) pour pouvoir le personnaliser
# docker-compose.yml back: build: . volumes: - "./back/:/src"Ou
# docker-compose.yml back: build: . volumes: - "../moBackDanUnAutreRepo/:/src"
Pour pas tout perdre à chaque build
VOLUME /var/log /src/cache
Pour les consulter sans se connecter au container
# docker-compose.yml back: build: . volumes: - "logs/:/var/log"
Image : System buildé et configuré n'ayant jamais tourné
Container : Instance d'une image ayant tournée / en fonctionnement
$ git pull $ docker-compose build back $ docker-compose up --no-deps -d back
Slides : https://github.com/tychota/conf-docker-bam
Repository : https://github.com/bamlab/docker-demo