Łukasz Piłatowski
Full Stack Developer
TEONITE
6 lat programowania
Od czerwca w JUGu
Prywatnie: tata, ratownik i saksofonista
Wykonywanie tych samych instrukcji w kółko
Używając Dockera
docker run -P postgres
docker run -P mongo
docker run -P rethinkdbTworzenie obrazów i ich udotępnianie
FROM node:5.12
MAINTAINER lpilatowski@teonite.com
RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN npm install
RUN npm build
VOLUME ["/app/dist"]docker build -t my_app:latest .
docker push "myrepo.com/myapp-frontend:latest"Tworzenie powiązań między kontenerami
db:
image: postgres
backend:
image: myrepo.com/myapp-frontend:latest
command: ./run.sh
environment:
- DB_HOST=db
- DB_PORT=5432
links:
- db
frontend:
image: myrepo.com/myapp-backend:latest
links:
- backend
ports:
- 9852:82Wszystkie kontenery korzystają z jednego kernela
Kontener:
Obraz
Kontener
Kontener
Kontener
Kontener
Pliki źródłowe
oraz binarne
Host
Kontener
Aplikacja
Pliki źródłowe
oraz binarne
Host
Kontener
Aplikacja
5432
Pliki źródłowe
oraz binarne
Host
Kontener
Aplikacja
5432
1234
Pliki źródłowe
oraz binarne
Host
Kontener
Aplikacja
5432
1234
wolumen
env vars
Uruchomienie z portem, zmiennymi środowiskowymi i volumenem
docker run \
-dp 1234:5432 \
-e POSTGRES_USER="foo" \
-e POSTGRES_PASSWORD="my_secret_pass" \
-v /home/vandavv/path/to/db_volume:/var/lib/postgresql/data \
postgresWymagania:
Uruchomienie:
npm install
npm startAdres:
Wybór obrazu bazowego:
FROM node
MAINTAINER lpilatowski@teonite.comnpm install
FROM node
MAINTAINER lpilatowski@teonite.com
ADD . .
RUN npm installFROM node
MAINTAINER lpilatowski@teonite.com
ADD package.json .
RUN npm install
ADD . .npm start
FROM node
MAINTAINER lpilatowski@teonite.com
ADD package.json .
RUN npm install
ADD . .
EXPOSE 3000
CMD npm startdocker build -t test_frontend .
docker run -p 3000:3000 test_frontendDB
Backend
?
Stworzyć obraz backendu
FROM python
MAINTAINER lpilatowski@teonite.com
ADD requirements.txt .
RUN pip install -r requirements.txt
ADD . .docker tag test_frontend vandavv/test_frontend:latest
docker tag test_backend vandavv/test_backend:latestdocker logindocker push vandavv/test_frontend:latest
docker push vandavv/test_backend:latestversion: '2'
services:
db:
image: postgres
backend:
image: vandavv/test_backend
ports:
- 8000:8000
links:
- dbdocker-compose upversion: '2'
services:
db:
image: postgres
backend:
image: vandavv/test_backend
ports:
- 8000:8000
links:
- db
frontend:
image: vandavv/test_frontend
ports:
- 3000:3000
links:
- backend
docker-compose updocker-compose upŁukasz Piłatowski
@lpilatowski
lpilatowski@teonite.com