Ł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 rethinkdb
Tworzenie 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:82
Wszystkie 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 \
postgres
Wymagania:
Uruchomienie:
npm install
npm start
Adres:
Wybór obrazu bazowego:
FROM node
MAINTAINER lpilatowski@teonite.com
npm install
FROM node
MAINTAINER lpilatowski@teonite.com
ADD . .
RUN npm install
FROM 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 start
docker build -t test_frontend .
docker run -p 3000:3000 test_frontend
DB
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:latest
docker login
docker push vandavv/test_frontend:latest
docker push vandavv/test_backend:latest
version: '2'
services:
db:
image: postgres
backend:
image: vandavv/test_backend
ports:
- 8000:8000
links:
- db
docker-compose up
version: '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 up
docker-compose up
Łukasz Piłatowski
@lpilatowski
lpilatowski@teonite.com