рдмрд╣реБрдд рдмрд╛рд░, рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдХреЛ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬ.рдЗрдореНрд▓ рдореЗрдВ "рдмрд┐рд▓реНрдб:" рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЫрд╡рд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдбреЙрдХрдлрд╛рдЗрд▓ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореБрдЭреЗ docker build -t servicename_foldername рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рднрд╛рд╡рд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрджрдиреБрд╕рд╛рд░ рдЫрд╡рд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ред
рдХреНрдпрд╛ рдпрд╣ рдЗрд░рд╛рджрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд▓реНрдХрд┐ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдЫрд╡рд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрджреНрдпрддрд┐рдд рд╣реИ рдФрд░ рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреЙрдХ рдмрд┐рд▓реНрдб рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдЪ рд╣реИ, docker-compose up
рдХрднреА рднреА рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ "рдЗрд░рд╛рджрд╛" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП: # 693
рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк docker-compose build
рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
# 614 рдХрд╛ рдбреБрдкреНрд▓реАрдХреЗрдЯ
рдЕрд░реЗ @dnephin , рдХреНрдпрд╛ рдЫреЛрдЯреА рд╕реА рджреБрдирд┐рдпрд╛ рд╣реИ!
рдореИрдВ рдПрдХ рдРрд╕реЗ рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБ рдЬрд╣рд╛рдБ docker-compose build
рдареАрдХ рд╕реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдПрдХ рд╡рд╛рд░реНрдирд┐рд╢ рдХрдВрдЯреЗрдирд░ рдХреЛ рдмрд╛рд╕реА рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЬреЛ рдореИрдВрдиреЗ рдХрд╣реАрдВ рдФрд░ рдкрдврд╝рд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг # 1195) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ docker-compose build
рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЗрди рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред
тХнтФАwting<strong i="11">@nuc</strong> ~/code/reddit-mobile тА╣python-2.7.12тА║ тА╣wting_chan-159_add_varnish_to_2X├Чad20b6dтА║
тХ░тФАтЮд docker ps 2016.09.15 12:20:46 PDT
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
тХнтФАwting<strong i="12">@nuc</strong> ~/code/reddit-mobile тА╣python-2.7.12тА║ тА╣wting_chan-159_add_varnish_to_2X├Чad20b6dтА║
тХ░тФАтЮд docker-compose --version 2016.09.15 12:20:48 PDT
docker-compose version 1.8.0, build f3628c7
тХнтФАwting<strong i="13">@nuc</strong> ~/code/reddit-mobile тА╣python-2.7.12тА║ тА╣wting_chan-159_add_varnish_to_2X├Чad20b6dтА║
тХ░тФАтЮд docker --version 2016.09.15 12:20:51 PDT
Docker version 1.12.1, build 23cf638
тХнтФАwting<strong i="14">@nuc</strong> ~/code/reddit-mobile тА╣python-2.7.12тА║ тА╣wting_chan-159_add_varnish_to_2X├Чad20b6dтА║
тХ░тФАтЮд docker-compose build && docker-compose up 2 тЖ╡ 2016.09.15 12:23:35 PDT
Building web
Step 1 : FROM reddit/reddit-nodejs:latest
---> ee57c186eb35
Step 2 : VOLUME /src
---> Using cache
---> 3720601d98c8
Step 3 : WORKDIR /src
---> Using cache
---> d4b9b360ef4e
Step 4 : EXPOSE 4444
---> Using cache
---> 5e232be73781
Step 5 : ENTRYPOINT npm start
---> Using cache
---> 1094fc9857bb
Successfully built 1094fc9857bb
Building varnish
Step 1 : FROM quay.io/reddit/varnish-fastly
# Executing 1 build trigger...
Step 1 : COPY default.vcl /etc/varnish/default.vcl
---> Using cache
---> ac9dadb35674
Step 2 : ENV VARNISH_PORTS 8080
---> Using cache
---> 3c43e0226f5f
Step 3 : EXPOSE 8080
---> Using cache
---> c88093c2ff32
Successfully built c88093c2ff32
Starting redditmobile_web_1
Starting redditmobile_varnish_1
Attaching to redditmobile_web_1, redditmobile_varnish_1
varnish_1 | storage_malloc: max size 100 MB.
varnish_1 | SHMFILE owned by running varnishd master (pid=1) # STALE LOCK FILE
varnish_1 | (Use unique -n arguments if you want multiple instances.)
web_1 |
web_1 | > [email protected] start /src
web_1 | > NODE_ENV=production npm run server
web_1 |
redditmobile_varnish_1 exited with code 2
web_1 |
web_1 | > [email protected] server /src
web_1 | > NODE_ENV=production node ./bin/ProductionServer.js
web_1 |
web_1 | Started cluster with 4 processes.
web_1 | Started server at PID 31
web_1 | Started server at PID 46
[..]
рд╣реЗ @wting
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╡реЙрд▓реНрдпреВрдо (https://docs.docker.com/compose/overview/#/preserve-volume-data-when-containers-are-created) рдореЗрдВ рд╣реИред
рдЖрдк рдкреБрд░рд╛рдиреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП docker-compose down
рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡реЙрд▓реНрдпреВрдо рд╕рдВрджрд░реНрдн рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рдЕрдЧрд▓реЗ up
рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдпрд╣ рдПрдХ рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рддрд╛рд▓рд╛ рдХрднреА рдирд╣реАрдВ рд╣рдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрдореНрдкреЛрдЬрд╝ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП down
рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдзрдиреНрдпрд╡рд╛рдж! docker-compose down
рдХрд╛рдо рдХрд┐рдпрд╛, рд╕рд╛рде рд╣реА docker-compose up --force-recreate
(рд▓реЗрдХрд┐рди docker-compose --build
)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЙрд▓реНрдпреВрдо рдШреБрдбрд╝рд╕рд╡рд╛рд░ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд░реНрдирд┐рд╢ рдХрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реИ; рдЕрднреА рддрдХ рд╡рд╛рд░реНрдирд┐рд╢ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдЫрдбрд╝реАред рдпрд╣рд╛рдБ docker-compose.yml
рдлрд╝рд╛рдЗрд▓ рд╣реИ:
version: '2'
services:
web:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "4444:4444"
volumes:
- .:/src
varnish:
build:
context: .
dockerfile: Dockerfile.varnish
ports:
- "4301:80"
depends_on:
- web
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП:
Dockerfile.dev
( VOLUME
рд╡рд░реНрддрдорд╛рди)Dockerfile.varnish
( VOLUME
)reddit/varnish-fastly/Dockerfile
(рдХреЛрдИ VOLUME
)рд╢реБрдХреНрд░рд┐рдпрд╛, рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧ, рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ "рдмрдЪ рдЧрдпрд╛" => "docker-compose up --force-recreate (рд▓реЗрдХрд┐рди docker-compose --build) рдирд╣реАрдВред"
docker-compose up --build
рд╕рдЪ рд╣реИ,
docker-compose up
рдХрднреА рднреА рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ "рдЗрд░рд╛рджрд╛" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП: # 693рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк
docker-compose build
рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред# 614 рдХрд╛ рдбреБрдкреНрд▓реАрдХреЗрдЯ
рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдПрдХ рдирдП рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдФрд░ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдорджрдж рдорд┐рд▓реА
FYI рдХрд░реЗрдВ - рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдлрд┐рдХреНрд╕ рдерд╛ред рдЗрдВрдЯрд░рд╡реНрдпреВ рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрд╛рдпрд╛ред рдЕрдЪреНрдЫреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
docker-compose up --build -V
рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ -V
рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ:
-V, --renew-anon-volumes Recreate anonymous volumes instead of retrieving data from the previous containers.
docker-compose
рдЕрдВрджрд░ рдПрдХ рдПрдХрд▓ рдЫрд╡рд┐ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП:
docker-compose up -d --force-recreate --no-deps --build $service
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
docker-compose up -d --force-recreate --no-deps --build varnish
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдЪ рд╣реИ,
docker-compose up
рдХрднреА рднреА рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ "рдЗрд░рд╛рджрд╛" рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП: # 693рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк
docker-compose build
рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред# 614 рдХрд╛ рдбреБрдкреНрд▓реАрдХреЗрдЯ