Dockerã§ã·ãŒã¯ã¬ããïŒãã¹ã¯ãŒããããŒãããã³é¢é£ãããã®ïŒãåŠçããããšã¯ãç¹°ãè¿ãçºçãããããã¯ã§ãã å€ãã®ãã«ãªã¯ãšã¹ãã¯ãã·ãŒã¯ã¬ãããåŠçããããã®ç¹å®ã®æ©èœãïŒèª€ïŒäœ¿çšããã人ã ã«ãã£ãŠããã€ãžã£ãã¯ããããŠããŸãã
ãããŸã§ã®ãšããããããã®æ©èœã¯å®å šã§ãªãããšã蚌æãããŠããããç§å¯ãåŠçããããã«èšèšãããŠããªããããããããããå®å šã§ã¯ãªãããããããã®æ©èœã䜿çšããã®ã¯_discourage_人ã ãã§ãã å°ãªããšãããã¹ãŠã®ç¶æ³ã«å¯ŸããŠã§ã¯ãªããå®éçãªäŸããªãå Žåã¯ãå®éã®ä»£æ¿æ段ãæäŸããŸããã
ãç§å¯ãã¯é·ããæ®ã£ãŠãããã®ã ãšæããŸãã ããã«ããããŠãŒã¶ãŒã¯ãã®ããã«èšèšãããŠããªãæ©èœãïŒèª€ã£ãŠïŒäœ¿çšãïŒãã®é åã®æ©èœèŠæ±ã§ãã£ã¹ã«ãã·ã§ã³ãæ±æããããšããå¯äœçšããããŸãïŒãç§å¯ãåŠçã§ããããã«ããããã ãã«ããŒããé£ã³è¶ããããŸãã
ãã®ãªã¹ãã¯ããããäžå®å šã§ãããèšåãã䟡å€ããããŸã
curl
ã§ãã¹ãããåŸã§ãããããã¹ãŠ1ã€ã®ã¬ã€ã€ãŒã§åé€ããŸãã ïŒhttps://github.com/dockito/vaultãåç
§ããŠãã ããïŒäžèšã¯ããã«ãæãšå®è¡æã®äž¡æ¹ã®ç§å¯ã念é ã«çœ®ããŠãŸã
@calaveraã¯ãæ°ããVolume-DriversïŒhttps://github.com/docker/docker/pull/13161ïŒãããã«äœ¿çšããæ¹æ³ã«ã€ããŠãè¿ éã§æ±ãæŠå¿µå®èšŒãäœæããŸããã https://github.com/calavera/docker-volume-keywhiz-fs
泚ïŒç°å¢å€æ°ã¯ãã³ã³ãããŒãžã®ã·ãŒã¯ã¬ãããMySQL ã WordPress ã PostgreSQLãªã©ïŒãå«ãŸããŸãã ãããã®ã€ã¡ãŒãžã¯ãäœæ/å®è£ æã«æ°ããããã¹ããã©ã¯ãã£ã¹ããæ¡çšããå¿ èŠããããŸãã
è¯ãäŒçµ±ã§ã¯ãããã«ç§å¯ãåŠçããããã®ããã€ãã®å€ãææ¡ããããŸãã
docker secret
ã¹ãã¬ãŒãžæ©èœã®ç¶ç¶ã https://github.com/docker/docker/pull/6697ping @ewindisch @ diogomonica @ NathanMcCauleyããã¯ç°¡åãªèšäºã§ãã å¿ èŠã ãšæãããå Žåã¯ã説æãèªç±ã«å€æŽ/æŽæ°ããŠãã ãã:)
ããã¯äŸ¿å©ãªæ å ±ã§ãïŒ
https://github.com/hashicorp/vault/issues/165
ããã¯æ¬¡ã®ãšããã§ãã
@ dreamcat4äžè¬çãªãã·ãŒã¯ã¬ããAPIããå®è£ ããèšç»ãããã€ããããŸããããã«ãããVaultãKeywizããŸãã¯Dockerã§you-name-itã䜿çšã§ããŸããããã¹ãŠåãæ¹æ³ã§ãã ããã¯åæã®èãã§ãããããè¿œå ã®èª¿æ»ãå¿ èŠã«ãªããŸãã
@thaJeztahããç³ãèš³ãããŸãããããããã®åªåãè°è«ã決ããŠæãªãããšã¯ããããããŸããã ç§ã¯ããããããããïŒãã®ããé·ãããã»ã¹ã®äžéšãšããŠããããŠç§ãã¡ãåŸ ã£ãŠããéã«ïŒç§ãã¡ãä»ã©ããŸã§å°éã§ããããèŠãããã®æçšãªæŒç¿ã§ãããã®ã§ã¯ãªãããšèããŠããŸãã 次ã«ãçŸåšã®ããã»ã¹ã®éçãšæ¬ é¥ãä»ã®äººã«ã¯ã£ãããšç€ºããŸãã æ ¹åºã«ãããã®ãæ¬ ããŠãããç§å¯ãæ¹åããããã«æãè¿œå ããå¿ èŠããããŸãã
ãŸããå®è¡æã·ãŒã¯ã¬ãããšãã«ãæã·ãŒã¯ã¬ããã®ããŸããŸãªç¶æ³ã«ã€ããŠæ€èšãã䟡å€ããããŸãã ãšãªã¢ãªãŒããŒã©ãããšãªã¢ããããŸãã
ãŸããããããïŒdockerã®å ŽåïŒããã¡ã¢ãªå ãã®ç§å¯ãåŠçããã¡ã«ããºã ãæäŸãããœãªã¥ãŒã·ã§ã³éã®å¶éïŒé·æ/çæïŒãæ€èšãã䟡å€ããããããããŸããã ããå€ãã®ãã¡ã€ã«ããŒã¹ã®ã·ãŒã¯ã¬ããã¡ãœãããŸãã¯ãããã¯ãŒã¯ããŒã¹ã®ã¡ãœããïŒããŒã«ã«ã·ãŒã¯ã¬ãããµãŒããŒãªã©ïŒãšã¯å¯Ÿç §çã§ãã ããŒãã«ã®çŸåšã®ããã¯ã¯ã©ãã§ããïŒé©åãªã·ãŒã¯ã¬ããAPIãŸã§ïŒã ããã¯ãçŸåšã®Dockeræ©èœã»ããã«å ããŠããã¯ã䜿çšããããšã§ã¯éæã§ããªãã£ãdocker secrets APIã«ãã£ãŠè¿œå ãããç¬èªã®äŸ¡å€ïŒããšãã°ããã匷åãªã»ãã¥ãªãã£ïŒã®äžéšãç解ããã®ã«åœ¹ç«ã¡ãŸãã ããããç§ã¯ã»ãã¥ãªãã£ã®å°é家ã§ã¯ãããŸããã ã§ããããç§ã¯ãããã®ããšã«ã€ããŠããã»ã©ç¢ºå®ã«ã³ã¡ã³ãããããšã¯ã§ããŸããã
@ dreamcat4ã¯ãããã®éãã§ãã çæçã«ã¯ããããã®ãªã³ã¯ã¯ç¢ºãã«äŸ¿å©ã§ãã
ãŸããå®è¡æã·ãŒã¯ã¬ãããšãã«ãæã·ãŒã¯ã¬ããã®ããŸããŸãªç¶æ³ã«ã€ããŠæ€èšãã䟡å€ããããŸãã ãšãªã¢ãªãŒããŒã©ãããšãªã¢ããããŸãã
ããããšãïŒ ç§ã®å ã®èª¬æã§ã¯ããã®éçšã§è¿·åã«ãªã£ãŠããã«éããªããšæããŸãã ç®æ¡æžããè¿œå ããŸã
ããããç§ã¯ã»ãã¥ãªãã£ã®å°é家ã§ã¯ãããŸããã
ç§ãããã§ã¯ãããŸããããããç§ãã»ãã¥ãªãã£ã¡ã³ããã«ãpingãããçç±ã§ãã IMOãããã¯åœŒãã«ãã£ãŠæžããããã®ã§ãªããã°ãªããŸããð
@thaJeztahçŽ æŽãããèŠçŽã ãã€ãèŠã€ãããããããçªãããã«ããŸãã
@diogomonicaã¯_çŽæ¥_é¢é£ããŠããŸãããããã«ãäžã«SSHããŒãšãŒãžã§ã³ãã転éããããã®é·ããªãŒãã³æ©èœã®ãªã¯ãšã¹ãããããŸãã https://github.com/docker/docker/issues/6396ã³ã¡ã³ãã®æ°ãèãããšãããã«ã€ããŠãèããŠã¿ããšããã§ãããã ïŒãããå®è¡ã§ãããã©ãã/å®è¡ãã¹ããã©ããã決å®ããå Žåã§ãïŒ
ã«ãŒã以å€ã®ãŠãŒã¶ãŒãšããŠããªã¥ãŒã ãããŠã³ãã§ãããšä»®å®ãããšïŒäžå¯èœã ãšã¯æããŸããããŠãŒã¢ã¢ã亀ããŠïŒãããã¯ç§å¯ãã³ã³ãããŒã«åã蟌ãããã®å¥œãŸããã¢ãããŒãã§ããããïŒ
ãããããªããç§ã¯ãžã®ä»£æ¿ãæå±ããã-v host_dir:image_dir
ããŒã¿ã®ã¿ã®ã³ã³ããã䜿çšããããšãæåŸ
ããã®ããã«èŠãããããããªã-vc host_dir:image_dir
ïŒããªãã¡ãããªã¥ãŒã ã»ã³ããŒïŒãhost_dirã®å
容ã§ããããšãç¹åŸŽãšããæ¹æ³ããŒã¿å°çšã³ã³ããã®image_dirããªã¥ãŒã ã«ã³ããŒãããŸãã
次ã«ã secure-data-only containers
ãã©ãã€ã ã匷調ãããããã®ããªã¥ãŒã ãæå·åã§ããããã«ããŸãã
æè¿ã @ jrslvããã®è¯ãèšäºãèªã¿ãŸããã圌ã¯ãã¢ããªããã«ãããããã ãã«ã·ãŒã¯ã¬ããã䜿çšããŠç¹å¥ãªDockerã€ã¡ãŒãžããã«ããããã«ãã€ã¡ãŒãžã®å®è¡çµæã䜿çšããŠé åžçšã®å¥ã®ã€ã¡ãŒãžããã«ãããããšãææ¡ããŠããŸãã
ãããã£ãŠã2ã€ã®DockerfileããããŸãã
ããã§ã次ã®ãããªãã£ã¹ããªãã¥ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
# !/bin/sh
docker build -t hello-world-build -f Dockerfile.build .
docker run hello-world-build >build.tar.gz
docker build -t hello-world -f Dockerfile.dist ^
hello-world-build
ç»åãããã·ã¥ããããšã¯ãªããããç§å¯ã¯å®å
šã§ãã
詳现ã«ã€ããŠã¯ã @ jrslvã®èšäºãèªãããšããå§ãããŸãhttp://resources.codeship.com/ebooks/continuous-integration-continuous-delivery-with-docker
@kepkinãå
±æããŠããã ãããããšãããããŸãïŒ
èšäºãèªã¿çµãããšããã§ãã æ¬åœã«ç°¡æœã§ãïŒ
ãã¡ã€ã«ããšã¯ã¹ããŒãããŠãå¥ã®Dockerfileãä»ããŠããŒããããšããã¢ã€ãã¢ã奜ãã§ãã ãäžéã¬ã€ã€ãŒããã«ããã£ãã·ã¥ã«ããããšããåé¡ããªããŠããæŒãã€ã¶ãããŠããããã«æããŸãã
ãã ããéçºãè€éã«ãªããç°¡åã«ããããã«3çªç®ã®Dockerfileãå¿ èŠã«ãªãå¯èœæ§ãããããšã«äžå®ãæããŠããŸãã
@kepkinã¯äžå¿«ã§ã¯ãããŸããããããã¯æå³ããããŸããã ã·ãŒã¯ã¬ããã¯tarballå
ã«ãããtarballããããã¯ã·ã§ã³ã€ã¡ãŒãžã«ADD
ãããŠãããããééããªãå®å
šã§ã¯ãããŸãããtarballãåé€ããŠããæŒãã€ã¶ããã«ãããã€ãã®ã¬ã€ã€ãŒã§ãªãŒã¯ããŸãã
@TomasTomecekäŸãæ£ããç解ããŠããã°ãtarballã¯ã€ã¡ãŒãžã¬ã€ã€ãŒã§ã¯ãªãããã«ãã³ã³ãããŒå ã«ãã«ãããããã€ããªã«ãããŸããã ããšãã°ããåç §ããŠãã ããã https://github.com/docker-library/hello-world/blob/master/update.sh ïŒããã«ã¯ç§å¯ã¯å«ãŸããŠããŸãããããã«ãã³ã³ãããŒã®ç°¡åãªäŸã§ãïŒ
@TomasTomecekDockerã€ã¡ãŒãžãæ§ç¯ããããã®ç§å¯ã«ã€ããŠè©±ããŠããŸãã ããšãã°ããã©ã€ããŒãGitHubãªããžããªãããœãŒã¹ã³ãŒãããã§ãã¯ã¢ãŠãããã«ã¯ãsshããŒãæž¡ãå¿ èŠããããŸãã ãŸããtarballã«ã¯ãã«ãã¢ãŒãã£ãã¡ã¯ãã®ã¿ãå«ãŸããŠããŸãããGitHubããŒã¯å«ãŸããŠããŸããã
@kepkinå³ãä»ç§ã¯ããªãã®æçš¿ãããäžåºŠèªãã§ãããèŠãããšãã§ããŸãã ç³ãèš³ãããŸããã æ®å¿µãªãããé åžã€ã¡ãŒãžã®å±é/æ§ç¯äžã«ã·ãŒã¯ã¬ãããå¿ èŠãªå ŽåïŒã¢ãŒãã£ãã¡ã¯ãã®ãã§ãããã¢ãŒãã£ãã¡ã¯ããµãŒãã¹ã«ããèªèšŒãªã©ïŒãåé¡ã¯è§£æ±ºãããŸããã ãããããã«ãããã»ã¹ãšãªãªãŒã¹ããã»ã¹ãåé¢ããããã®åªãããœãªã¥ãŒã·ã§ã³ã§ããããšã¯ééããããŸããã
@TomasTomecekã¯ããŸãã«ç§ãå®éã«ã¢ãŒãã£ãã¡ã¯ãããã§ããããæ¹æ³ã§ãã
Docker.buildã€ã¡ãŒãžã§ãAWSããŒãšã·ãŒã¯ã¬ãããå¿ èŠãšããAmazonS3ã€ã¡ãŒãžããããã€ãã®ãã€ããªäŸåé¢ä¿ãããŠã³ããŒãããŸãã ååŸããŠæ§ç¯ããåŸãå¿ èŠãªãã®ãã¹ãŠã䜿çšããŠtarballãäœæããŸãã
æ£èŠã®ããã¹ããã©ã¯ãã£ã¹ãã®èšäºïŒãçŠæ¢äºé ãã«èšèŒãããŠãããæšå¥šäºé ãïŒã¯ãããŸããïŒ
DockerComposeãenv_file
ãªãã·ã§ã³ããµããŒãããŠããããšã¯æ³šç®ã«å€ããŸãïŒããã«ééããŠããç§ã®ãããªäººã«ãšã£ãŠã¯ïŒã
@afeld dockerèªäœã«ããã®æ©èœããããŸããhttpïŒ //docs.docker.com/engine/reference/commandline/run/#set -environment-variables-e-env-env-fileãåç §ããŠãã ããããã ãããããã®env-varã¯åŒãç¶ãæ©èœããŸããåãå Žæã«è¡šç€ºãããã®ã§ãããªãŒã¯ããšã®éãã¯ãããŸãã
ç§ã¯ãã®ããŒãã·ãŒãã«åºããããŸããïŒ http ïŒ
@kepkinããã¯ãsshããŒãdocker build
ã«æž¡ãæ¹æ³ã§ãã
# serve the ssh private key once over http on a private port.
which ncat
if [ "$?" = "0" ]; then
ncat -lp 8000 < $HOME/.ssh/id_rsa &
else
nc -lp 8000 < $HOME/.ssh/id_rsa &
fi
nc_pid=$!
docker build --no-cache -t bob/app .
kill $nc_pid || true
172.17.0.1ãDockerã²ãŒããŠã§ã€IPã§ããDockerfileå ïŒ
RUN \
mkdir -p /root/.ssh && \
curl -s http://172.17.0.1:8000 > /root/.ssh/id_rsa && \
chmod 600 /root/.ssh/id_rsa && chmod 700 /root/.ssh && \
ssh-keyscan -t rsa,dsa github.com > ~/.ssh/known_hosts && \
git clone --depth 1 --single-branch --branch prod [email protected]/app.git . && \
npm i --production && \
... && \
rm -rf /root/.npm /root/.node-gyp /root/.ssh
誰ãããã£ãšç°¡åãªãã®ãæã£ãŠãããªããç§ãã¡ã«ç¥ãããŠãã ããã
ããã§ãããã®çŸåšã®ç¶æ³ã¯äœã§ããïŒ
å€ã®éãã£ãšé·ãäŒè©±ã®é£éãããããã®æžå¿µãã©ãã»ã©åºãŸã£ãŠããã®ãã瀺ããŠããŸãã ããã¯5æã«æåºãããŸãããããŸã éããŠããŸãã ããšãã°ãPostgresã®ãã¹ã¯ãŒããã©ã®ããã«èšå®ããŸããïŒ
@thaJeztahãããåé²ãããããã«äœãã§ããã§ããããïŒ ããŸããŸãªäžæµãããžã§ã¯ãå šäœã§å€ãã®ç®ããã®åé¡ã«æ³šç®ããŠãããšæããŸã... ejã https://github.com/rancher/rancher/issues/1269
ããã§è¡ãããŠããããšã¯_secret_ïŒDã«ä¿ãããŠãããšæããŸã
ããã¯ãDockerãæ¬çªã¹ã¿ãã¯ã«çµ±åããäžã§ã®æ倧ã®åé¡ç¹ã§ãã ããã«åããé²æç¶æ³ã瀺ãããŒãããããŸãã¯å¥ã®ããã¥ã¡ã³ããã©ããã«ãããŸããïŒ
k8sããã®ãã®ãããã¯ã«é¢ããããã€ãã®é¢é£ã³ã³ãã³ãã
ãããå®è¡æã®ç§å¯ã«å¯ŸåŠããããã®æœåšçãªæ¹æ³ãšããŠã©ãæããŸããïŒ
https://github.com/docker/docker/issues/19508
ãã®åé¡ã¯ããµããŒãããå¿ èŠã®ããããã€ãã®ã·ããªãªã«éäžããããããã«äžé£ã®æ瀺ãããããšã確èªããããšã§æããã察åŠã§ãããšæããŸãã ããããã©ã®ããã«å®è£ ãããã¯ãããã»ã¹ã®æåŸã«ãããŒãºãæºããããã«çµã¿åãããããšãã§ããäžè²«ããæ©èœã®ã»ããããããã©ãããããéèŠã§ã¯ãããŸããã
ç§ãèšåããŠããã®ãèŠãããã€ãã¯ãããªãæ£åœãªæžå¿µã§ããããã«æãããŸãïŒ
å®è¡æã®è³æ Œæ å ±
link
ãå
±æãã2ã€ã®ã³ã³ããéã§èª¿æŽããããŠãŒã¶ãŒ/ãã¹ã¯ãŒãæ
å ±ç§ããç°¡åããšèšããšãã¯ããããã®å€æ°ãåŠçããããã®äººéå·¥åŠçã«æ£ããã¢ãããŒããããããŠãŒã¶ãŒã誀ã£ãŠééã£ãããšãããããã»ãã¥ãªãã£æ å ±ãããªã¬ãŒãããããã®ãé²ããŸãã çµéšã®ã¹ãã¬ã¹ã¯ãééãã«é¢ä¿ããããŒã«ã«é¢é£ããïŒèªãïŒéé£ãããïŒããšããããããŸãã
ãã«ãæã®ã¯ã¬ãã³ã·ã£ã«
docker build
ã¯äœ¿çšããŸããïŒæåã®ç·šéïŒ
å žåçãªç»åãã³ã³ããã«ããªãŒã¯ããããŠãããã®ãšãããŠããªããã®ã®ããã¥ã¡ã³ã
ããã«å€§ããªãã®ãããã€ãæ¬ ããŠãããããªæ°ãããŸãã 誰ããç§ãå¿ãããã®ãæã«å ¥ããŸãããïŒ
jsonãµãŒãã¹ã®APIããŒã
ããšãã°ïŒããã¯ç§ã®å®éã®ãŠãŒã¹ã±ãŒã¹ã§ãïŒãDockerãã«ãã¯ããã°ã©ã ãã³ã³ãã€ã«ããŸããAPIããŒã¯ç§ãèªèšŒãããã«ã補åãBintray.comã«ã¢ããããŒãããããã«å¿ èŠã§ãã
@ dreamcat4ç§ã¯ããªããèšã£ãŠããããšãã
ç¶ç¶çãããã€ãã«ãã«Dockerã€ã¡ãŒãžã䜿çšãããã«ããæåãããšãã«ãã«ãã¢ãŒãã£ãã¡ã¯ããã¢ãŒã«ã€ãã«ããã·ã¥ããããšã«ã€ããŠè©±ããŠããã®ã§ããïŒ å人çã«ã¯ããããããã«äžæµã§è¡ãããšã奜ã¿ãŸãïŒããšãã°ãJenkinsã®ãã«ãåŸã®ã¹ã¯ãªããïŒããã¯ãã¹ã³ã³ãã€ã«ããå Žåã¯å°ã泚æãå¿ èŠãããããŸããã
ç§ã®äžçã§ã¯ããã«ããšãŒãžã§ã³ãã¯ãã€ããª/ã¢ãŒã«ã€ãããã«ããããã«ãããã»ã¹ã®ãã¢ãŒãã£ãã¡ã¯ãããšããŠä¿æããŸããä»ã®äœããããããã€ã³ãã©ã¹ãã©ã¯ãã£ã«ããã·ã¥ããgitãªããžããªã«ã¿ã°ãä»ããŸããããã«ãããã¢ãŒãã£ãã¡ã¯ãã®ç·æ¥ããã¯ã¢ãããåŸãããŸããéçšäžã®åé¡ããããããšãã°ãnpmãdockerããŸãã¯Artifactoryãªããžããªãã¢ããã°ã¬ãŒãã®ããã«ããŠã³ããŠãããããããã¯ãŒã¯ã«åé¡ãçºçããŠããŸãã
ç§ãèšãããã£ãã®ã¯ãäžè¬çãªAPIããŒã®äœ¿çšã«ã€ããŠã§ããã ã³ã³ãããïŒãã«ãæãŸãã¯å®è¡æã«ïŒå¯Ÿè©±ããå¿ èŠãããå¯èœæ§ã®ãããããŸããŸãªãªã³ã©ã€ã³JSON / RESTãµãŒãã¹ãå€æ°ãããŸã...ããã«ã¯APIããŒãå¿ èŠã§ãã ç¹ã«ãã«ãé¢é£ã§ããå¿ èŠã¯ãããŸããã
@dreamcatãããRESTãšã³ããã€ã³ãã®èªèšŒããŒã¯ã³ïŒ ãããã¯ãããšãã°confãã¡ã€ã«ã®postgresãã¹ã¯ãŒããšã¯å€§å¹ ã«ç°ãªãæ¹æ³ã§åŠçããããšæããŸããããããšãåæ§ã«åŠçããŸããïŒ
ãããããã2ã€ã®ã¿ã€ãã¯ãåºæ¬çãªã»ãã¥ãªãã£ã®æå°ã¬ãã«ãè©äŸ¡ãããšãã芳ç¹ãããç°ãªãæ¹æ³ã§æ€èšããå¿ èŠããããšæããŸãã
APIèªèšŒããŒã¯ã³ã¯å€ãã®å Žå次ã®ããã«ãªããŸãã
ãã¹ã¯ãŒãã¯æ¬¡ã®ããã«ãªãåŸåããããŸã/å€ãã®å ŽåïŒ
ãããã£ãŠãããã¯å¿ ããããããã2ã€ã®ã¿ã€ãã®ã·ãŒã¯ã¬ãããœãªã¥ãŒã·ã§ã³ã_ç°ãªãå¿ èŠããã_ããšãæå³ããããã§ã¯ãããŸããã 蚱容å¯èœãªæå°ããŒã¹ã©ã€ã³ã¬ãã«ã®ã»ãã¥ãªãã£ã¯ãAPIããŒã®å Žåã¯å°ãäœããªãå¯èœæ§ããããŸãã
ãã®æå°ã¬ãã«ã¯ã匷åãªã»ãã¥ãªãã£ãèšå®ããããšãããè€éã§åé¡ãããå Žåã«éèŠã§ãã ïŒããã¯ãDockerã·ãŒã¯ã¬ããã®å ŽåããŸãã¯ãœãªã¥ãŒã·ã§ã³ãã©ãã»ã©å®è¡å¯èœ/ãšã¬ã¬ã³ãã§ãããã«äŸåããªãå Žåã«åœãŠã¯ãŸãå¯èœæ§ããããŸãïŒã
ãŸãããã¹ã¯ãŒãã®APIããŒã®ã»ãã¥ãªãã£ã匷å/匱ããªãå ŽåããããŸãã ã¯ã³ãµã€ãºã§ãã¹ãŠã«å¯Ÿå¿ããããšã¯äžå¯èœã§ãã
ããšãã°ãç§ã®bintray APIããŒïŒDockerfileãšåã.gitãªããžããªã«ä¿æãããŠããŸãã ãããã£ãŠãå®å šã確ä¿ããããã«ãPRIVATE git repoïŒSSHçµç±ã§ã¢ã¯ã»ã¹ïŒã«ä¿æãããŸãã ãããã£ãŠãã¢ã¯ã»ã¹æš©ãååŸããããšã¯ãããã§æ¯èŒçååã«ä¿è·ãããŠããAPIããŒã«ã¢ã¯ã»ã¹ããããšã§ãã ãã ããDockerã«ç¬èªã®ã·ãŒã¯ã¬ããæ©èœ/ä¿è·æ©èœãçµã¿èŸŒãŸããŠããªãå Žåããã«ããããDockerã€ã¡ãŒãžã«ã¯åžžã«ãã¬ãŒã³ããã¹ãã®APIããŒãå«ãŸããŸãã ãããã£ãŠãçµæã®Dockerãã«ãã€ã¡ãŒãžã¯ãgitãªããžããªã®ããã«ãã©ã€ããŒãã«ä¿ã€å¿ èŠããããŸã...ããã«ã¯ãä»ã®èª°ããã«ããã°/ãã«ãã¹ããŒã¿ã¹ãå ¬ã«è¡šç€º/衚瀺ã§ããªãããã¯ãªã³ïŒæãŸãããªãå¹æïŒããããŸãã
ä»ã§ã¯ããã¯å€ãã®ç¹ã§çæ³çã§ã¯ãããŸããã ããããå šäœçãªãœãªã¥ãŒã·ã§ã³ã¯ååã«åçŽã§ãããå®éã«æ©èœããŸãïŒæšæ¥ã®ããã«ïŒã å°æ¥ããã£ãšè¯ãã¡ã«ããºã ãã§ããããããã«åãæ¿ããããšãæ€èšããããšæããŸãã ãããããã®ã¡ã«ããºã ããç§ããã§ã«äœæããçŸåšã®ãœãªã¥ãŒã·ã§ã³ãããã»ããã¢ããã«å€§å¹ ã«ã³ã¹ããããã/è€éã§ããå Žåã¯ããã§ã¯ãããŸããã ãããã£ãŠãAPIããŒã1ã€ãããªãå Žåã¯ãéåžžã«åŒ·åãªã»ãã¥ãªãã£ïŒæè¿ãããŸãïŒãéå°ã«ãªãå¯èœæ§ããããŸãã ããã¯ãããçš®ã®æ°ããNOCAHCEãªãã·ã§ã³/ Dockerfileã³ãã³ãã䜿çšããŠãDockerã®ã€ã¡ãŒãžã¬ã€ã€ãŒãã£ãã·ã¥ããé€å€ããå¿ èŠãããã ãã§ãã
ãã¹ã¯ãŒãã«ã¯ãããŒã«ããansible-vaultã®ãããªãã®ãå¿ èŠã§ãããããã«å¥ã®ãã¹ã¯ãŒããŸãã¯ãã®ä»ã®åŒ·åã«å®å šãªèªèšŒã¡ã«ããºã ã§æå·åããå¿ èŠããããŸãã ïŒããã¯åžæããŸããããã»ããã¢ãããè€éã«ãªãå¯èœæ§ããããŸãïŒã
å®è£ ãæ éã«è¡ãããå Žåããã¹ãŠã®ç§å¯ã«é¢é£ãããã®ã管çããã³åçåïŒèªã¿åãïŒç£æ»ããã¬ãŒã¯ã°ã©ã¹ïŒããããã®ã¯ã©ã€ã¢ã³ã/ãµãŒããŒã¢ãã«ïŒããŒã«ãã®ãããªïŒã¯è¯ãç¿æ £ã§ãããã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ãã«ããŒãããšæããŸãã ç§ã¯å人çã«ãéããªã¹ãã£ãã¯ãªã¢ãããŒããæ¡çšããã®ã奜ãã§ã¯ãããŸãããããã¯ããã¹ããã©ã¯ãã£ã¹ã®æ°ŽæºãåŒãäžããæ©äŒã ããã§ãã
ããã¯ãé·æéå®è¡ãããŠããã¯ã©ã€ã¢ã³ãïŒã€ã¡ãŒãžããããã€ãã人ã®è²¬ä»»ïŒããã³/ãŸãã¯ãã«ãæã®ã¯ã©ã€ã¢ã³ãïŒãã«ããŒã®è²¬ä»»ïŒãæå³ããŸãã ãã¶ããåè ã¯ãå®è¡æã«èš±å¯ãããã·ãŒã¯ã¬ãããæäŸããdockerããŒã¢ã³ã«è»¢éãããå¯èœæ§ããããŸãã
確ãã«-ç§ã¯åã®ã³ã¡ã³ãã«å¿ããåæããŸãã 人ã ãåé¡ã解決ããŠããåµé çãªæ¹æ³ãè³è³ããŠããªãããã§ã¯ãããŸãããããããå¿ èŠãªæ¹æ³ã§ã¯ãªããšæããŸã-CI / Dãšå®è¡æã®äž¡æ¹ã§äœ¿çšã§ãããœãªã¥ãŒã·ã§ã³ãèããŠã¿ãŸããããããã³ã³ã³ãããMesos / Kubernetesãªã©ã«ãã£ãŠãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããå¯èœæ§ãããããšãèæ ®ã«å ¥ããŸãã
Dockerã¯åé¡ã®é åã«ããã€ãã®äœåãªããããæ瀺ããã®ã§ãããã§ãå°ãã®ããã¥ã¡ã³ãã圹ç«ã€ãšæããŸãã
Vaultã®äººãã¡ããããæåŸããèŠãŠããããã§ãã ç§ã¯ãã®ãã±ããã泚ç®ãã¹ããã®ã ãšæããŸãïŒ
https://github.com/hashicorp/vault/issues/165
ãã¶ããããã¯å ±åäœæ¥ãå¯èœãªãã®ã§ãã
@jdmarshall
ãã¶ããããã¯å ±åäœæ¥ãå¯èœãªãã®ã§ãã
+1
+1 Docker + Hashi Corp Vault
ç³ãèš³ãããŸããããããå€ãã®äººãåå ããã«ã€ããŠãœãªã¥ãŒã·ã§ã³ãè€éã«ãªãã®ã¯å¥œãã§ã¯ãããŸãããããšãã°ãHashi Corp Vaultã¯ãæå·åãããããã¯ãšã³ãã¹ãã¬ãŒãžãåããå®å šãªã¯ã©ã€ã¢ã³ããµãŒããŒãœãªã¥ãŒã·ã§ã³ã§ãã ããã¯ããªãå€ãã®å¯åéšåãè¿œå ããŸãã äžéšã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãã®ã¬ãã«ã®è€éããèŠæ±ããããšç¢ºä¿¡ããŠããŸãããã»ãšãã©ã®å Žåããããªããšã¯æããŸããã 競åãããœãªã¥ãŒã·ã§ã³ããã¹ãç°å¢å€æ°ã䜿çšããããšã§ããå Žåãéçºè ã®å€§å€æ°ã«ãã£ãŠäœ¿çšãããããšã«ãªããšç§ã¯ããªã確信ããŠããŸãã
éçºïŒäŸïŒgithubããŒïŒãšãããã€ïŒäŸïŒnginx蚌ææžããŒãdbã¯ã¬ãã³ã·ã£ã«ïŒãã«ããŒãããœãªã¥ãŒã·ã§ã³ãæ¢ããŠããŸãã env varsããã«ãããŒã«ã§ãã¹ããæ±æããããããŸããããã¡ãããç§å¯ãgithubïŒæå·åãããŠããªãïŒãdocker imageãã£ã¬ã¯ããªïŒãã©ã€ããŒããã£ã¬ã¯ããªã§ãã£ãŠãïŒã«ãªã£ãŠããŸãããšã¯ãããŸããã
@gittycatããããããã€ãã®ç°ãªããŠãŒã¹ã±ãŒã¹ããããšããæå³ã§ãç§ã¯ããªãã«åæããŸãã ããã«ãããäžéšã®ãœãªã¥ãŒã·ã§ã³ã¯ä»ã®ãœãªã¥ãŒã·ã§ã³ãããåçŽã«ãªãã¯ãã§ãã
ãã ããENVå€æ°ã«é Œãã®ã¯é¿ããããšæããŸãã
ç§èªèº«ã®å¥œã¿ã¯ãansibleã®ãããŒã«ããã¡ã«ããºã ã«äŒŒããã®ã§åçŽãªããŒã¹ãã¬ãŒãžãå®çŸã§ãããšããèãã«åŸããŠããŸãã æå·åãããããã¹ããã¡ã€ã«ããã«ãã³ã³ããã¹ãå ïŒãŸãã¯ãã«ãã³ã³ããã¹ãã®å€éš/暪ã«ãããœãŒã¹ïŒã«ä¿æãããŠããå Žåã 次ã«ãããã¯è§£é€ããŒã䜿çšãããšããã®ãã¡ã€ã«ãããã¬ãŒã³ããã¹ãã®ãã¹ã¯ãŒããAPIããŒãªã©ãããã¯è§£é€ã§ããŸãã
ç§ã¯ãanisibleç¬èªã®ãããŒã«ãããœãªã¥ãŒã·ã§ã³ã䜿çšããåŸã«èšã£ãŠããã ãã§ãã ããã¯æ¯èŒççã¿ããªã/ã·ã³ãã«ã§ãã Hashicorpã®ããŒã«ãã¯ããå®å šã§ãããã»ããã¢ãããé£ãããäžè¬çã«ã¯ããè€éã§ãã ããã§ãæçµçã«ããã¯ãšã³ããšããŠäœ¿çšã§ããªãã£ãæè¡çãªçç±ã¯ããããŸãããïŒDockeræåã®ã³ãã³ãã©ã€ã³ããŒã«ã®èåŸã§é衚瀺/ç°¡ç¥åïŒã
è€éã§ä¿¡é Œæ§ãäœãå¯èœæ§ã®ããHTTPããŒã¹ãã¬ãŒãžãµãŒããŒãã»ããã¢ããããå¿ èŠããªããããããŒã«ã«ãã¡ã€ã«ã¹ãã¬ãŒãžããå§ãããŸãã ã·ãŒã¯ã¬ããã¹ãã¬ãŒãžã¯ã»ãã¥ãªãã£äžã®åé¡ã§ãããããäŒæ¥ã ãã§ãªããã¹ãŠã®ãŠãŒã¶ãŒãå©çšã§ããããã«ããå¿ èŠããããŸãã ã¡ããã©ç§ã®2ã»ã³ãã®æèŠã
ããŒã«ã«ãã¡ã€ã«ã¹ãã¬ãŒãžããã¯ãšã³ãã«+1ããŸãããããé«åºŠãªãŠãŒã¹ã±ãŒã¹ã§ã¯ãHashicorpVaultã®ãããªãœãªã¥ãŒã·ã§ã³ã®ãã«ãã¯ãŒã奜ã¿ãŸãã ç§ãã¡ãå±éã«ã€ããŠè©±ããŠãããšããçµç¹ã§ã¯ãç§å¯ãæäŸããã³ç®¡çãã人ã¯ãç§å¯ã䜿çšãã人以å€ã®äººã§ãããšããè°è«ããããŸãã ããã¯ãå¶åŸ¡åãæã€äººã®èŒªãéåžžã«ä¿¡é Œã§ããã»ãã¥ãªãã£ãšã³ãžãã¢ã«éå®ããããã®äžè¬çãªã»ãã¥ãªãã£å¯Ÿçã§ã...
ãããäœããã®çšéã§ããããæ©èœãããã¯ããããŸããããå®è¡æã«ã³ã³ãããŒã«ã·ãŒã¯ã¬ãããæ¿å ¥ããå Žåã解決ããããã®ãå°ãå·Šãã£ãŒã«ãã®ææ¡ããããŸãïŒããšãã°ãpostgresãã¹ã¯ãŒãïŒã
docker run
æç¹ã§ãšã³ããªãã€ã³ãããªãŒããŒã©ã€ãããéžæããã¹ã¯ãªããïŒ/ sbin / get_secretsãªã©ïŒã«èšå®ã§ããå Žåãéžæããã¡ã«ããºã ïŒKMSãªã©ïŒããã·ãŒã¯ã¬ãããååŸãããšãå
ã®ãšã³ããªãã€ã³ããå®è¡ãããŸãã ïŒãããã£ãŠãã³ã³ããå
ã«ã·ãŒã¯ã¬ãããå«ãç°å¢å€æ°ãèšå®ããããšãå¯äžã®ç®çãšããåãªãã©ãããŒã«ãªããŸãããã®ãããªã¹ã¯ãªããã¯ãå®è¡æã«ããªã¥ãŒã ããŠã³ããä»ããŠæäŸã§ããŸãããã®ãããªã¡ã«ããºã ã§ã¯ãã·ãŒã¯ã¬ããããã£ã¹ã¯ã«æžã蟌ãŸããããšã¯ãããŸããïŒç§ã®ãããã®1ã€ãå«ãã§ãïŒããŸãã¯dockerïŒdocker inspectã®äžéšã§ã¯ãããŸããïŒã«ãã£ãŠãªãŒã¯ãããŠããŸãããã³ã³ãããŒå
ã®ããã»ã¹1ã®ç°å¢å
ã«ã®ã¿ååšããããšãä¿èšŒããŸããããã«ãã12èŠçŽ ãç¶æãããŸãã
ãšã³ããªãã€ã³ããç»åã¡ã¿ããŒã¿ã§äœ¿çšãããŠããªãå Žåã¯ããã§ã«ãããè¡ãããšãã§ããŸããããšã³ããªãã€ã³ããã³ãã³ããã©ãããããããcmdã®ã¿ã䜿çšãããŸãã åè¿°ã®ããã«ãã©ãããŒã¯å®è¡æã«volmountãä»ããŠããŠã³ãã§ããŸãã ãšã³ããªãã€ã³ãããã§ã«ç»åã¡ã¿ããŒã¿ã§äœ¿çšãããŠããå Žåãå ã®ãšã³ããªãã€ã³ããã³ã³ããå ããïŒã³ãã³ãã©ã€ã³ãªãŒããŒã©ã€ãã§ã¯ãªãïŒç¢ºèªã§ããªãéããçŸæç¹ã§ã¯ãããéæã§ããªããšæããŸã-ãããã§ãããã©ããã¯ããããŸããã
æåŸã«ãå€éšã®/ sbin / get_secretsã䜿çšããŠå®éã®ã·ãŒã¯ã¬ããïŒpostgresãã¹ã¯ãŒããªã©ïŒãèŠæ±ã§ããåŸæ¥ã®env varã€ã³ãžã§ã¯ã·ã§ã³ãä»ããŠãæå·åãããã¯ã³ã¿ã€ã ããŒãæäŸããããšãå¯èœã ãšæããŸããããã«ãããDockerã«è¿œå ã®ã»ãŒãã¬ãŒããè¿œå ãããŸããã¯ã³ã¿ã€ã ããŒã®æŒæŽ©ã
ãããåãªãã¬ã€ã€ãŒäžã®ã¬ã€ã€ãŒãªã®ãããããšãåé¡ã解決ã§ããå¯èœæ§ãããã®ãââãç§ã«ã¯ããããŸãããæåã®å Žåã¯ãè©«ã³ããŸãã
@ thaJeztah-äžèšã®è§£æ±ºçãæ©èœããããšã確èªã§ããŸããã·ãŒã¯ã¬ããã¯
@gtmtechèå³æ·±ãã get secretsbinaryããå ã®ãšã³ããªãã€ã³ããäœã§ããããã©ã®ããã«èŠã€ãããã«èå³ããããŸãã
ãã¶ãããµã³ãã«ã³ãŒããã©ã«ãã¯ãã¢ãããŒãããã¢ã³ã¹ãã¬ãŒã·ã§ã³/ç解ããã®ãå°ãç°¡åã«ããã§ãããã
ãµã³ãã«ã³ãŒããšäœæ¥ã·ããªãªã¯ãã¡ã@ dreamcat4 @kaos >
ç§ã¯ééã£ãŠãããããããŸãããããªããããã®è€éãªæ¹æ³ã§ããïŒ ç§ã¯æšæºã®UNIXãã¡ã€ã«ã®ããŒããã·ã§ã³ã«äŸåããŠããŸãã ã«ãŒãã§ã®ã¿èªã¿åãå¯èœãª-v /etc/secrets/docker1:/etc/secrets
ã䜿çšããŠãã¹ãŠã®ã·ãŒã¯ã¬ãããdockerã«æž¡ããšãã³ã³ãããŒã®èµ·åæã«rootãšããŠå®è¡ãããã¹ã¯ãªããããããé¢é£ããããã°ã©ã ïŒapache configãªã©ïŒã®é©åãªå Žæã«ã·ãŒã¯ââã¬ãããæž¡ããŸãã ãããã®ããã°ã©ã ã¯èµ·åæã«rootæš©éãåé€ããããããããã³ã°ãããå ŽåãåŸã§rootãææããã·ãŒã¯ã¬ãããèªã¿åãããšã¯ã§ããŸããã ç§ã䜿çšãããã®æ¹æ³ã¯ã©ããããããæ¬ é¥ããããŸããïŒ
ããããšã@gtmtech :)
æ®å¿µãªãããæšæºã®ãšã³ããªãã€ã³ãã¯ãããŸããããŸããDockerãå¶åŸ¡ãããæ¹æ³ã§å®è¡ããåã«dockerinspectãå®è¡ããããšãã§ããŸããããããç§ã¯ããªãã®ã¢ãããŒãã奜ãã§ãã
ç§ã¯ééã£ãŠãããããããŸãããããªããããã®è€éãªæ¹æ³ã§ããïŒ ç§ã¯æšæºã®UNIXãã¡ã€ã«ã®ããŒããã·ã§ã³ã«äŸåããŠããŸãã ã«ãŒãã«ãã£ãŠã®ã¿èªã¿åãå¯èœãª-v / etc / secrets / docker1ïŒ/ etc / secretsã䜿çšããŠããã¹ãŠã®ã·ãŒã¯ã¬ãããdockerã«æž¡ããŸãã次ã«ãã³ã³ãããŒã®èµ·åæã«rootãšããŠå®è¡ãããã¹ã¯ãªããããããé¢é£ããããã°ã©ã ïŒapacheãªã©ïŒã®é©åãªå Žæã«ã·ãŒã¯ââã¬ãããæž¡ããŸãã configïŒã ãããã®ããã°ã©ã ã¯èµ·åæã«rootæš©éãåé€ããããããããã³ã°ãããå ŽåãåŸã§rootãææããã·ãŒã¯ã¬ãããèªã¿åãããšã¯ã§ããŸããã ç§ã䜿çšãããã®æ¹æ³ã¯ã©ããããããæ¬ é¥ããããŸããïŒ
ããã
ç§ã¯åæãããã®ã¢ãããŒã^^ãã©ã³ã¿ã€ã ã·ãŒã¯ã¬ããã®æè¯ã®æ¹æ³ãšããŠäžè¬çã«æšå¥šãããã¹ãã ãšæããŸãã ããã«ããä»ã®èª°ããããã«å¯ŸããŠåŒ·ãå察ãæã£ãŠããªãéãã ãã®åŸããã®^^ã§ã«ããŒãããŠããªãæ®ãã®ã³ãŒããŒã±ãŒã¹ïŒå®è¡æïŒãäžèŠ§è¡šç€ºã§ããŸãã
æ®å¿µãªãããç§å¯æ¢åµã¯ã«ã¯ã«ãé¢éžããã®ãèŠãããšãã§ããŸãããããã¯ãã»ãšãã©ã®äžè¬çãªéæè¡è ãåŠã³ã人æ°ã®ããæŠç¥ãšããŠæ¡çšããã«ã¯è€éãããããã§ãã
ããã§ãããã¯å»ããŸãïŒããªãã¯ããããããããã§ã«æšæž¬ããŠããã§ãããïŒ...
ãã«ãæã®ç§å¯ïŒ
ããããããã¯é²æ©ã ãšæããŸãïŒ ä¹ ãã¶ãã«ã©ãã«ãè¡ããªããªã£ãã®ã§ãç©äºãååã«æžãããŠãåé¡å šäœã®çŽ45ã50ïŒ ã解決ãããããããŸããã
ãããŠãç§å¯ã®åšãã«ãŸã åé¡ãæ®ã£ãŠããå Žåãå°ãªããšããããã¯ããå ·äœç/çŠç¹ãçµã£ããã®ã«ãªãããã®åŸãé²è¡/ã¿ãã¯ã«ãç¶ããããšãã§ããŸãã
ã¯ããããŸã詳ããã¯èª¬æããŸãããããããã®ã¢ãããŒãã¯ãæäŸãããŠãããããé«ãã¬ãã«ã®ã»ãã¥ãªãã£ãå¿ èŠãªãããçŸåšäœæ¥ããŠããç¶æ³ã§ã¯æ©èœããŸããã ããšãã°ããã£ã¹ã¯äžã§æå·åãããŠããªãã·ãŒã¯ã¬ãããã¿ãŒã²ããããã»ã¹ã§åŸ©å·åãããåŸã®æå¹ãªåŸ©å·åããŒãå®æçãªæå·åããŒããŒã·ã§ã³ãæå·åãããã·ãŒã¯ã¬ããã®åäžãªããžããªïŒãµãŒããŒéã§åæ£ãããŠããªãïŒãªã©ã§ãã ãããã£ãŠããã®ã¬ãã«ã®ã»ãã¥ãªãã£ãå®è¡ããå¿ èŠããã人ã ã«ãšã£ãŠã¯ãå¯èœãªã¢ãããŒããææ¡ããŸããã
secret_squirrelã¯ãšã«ãããå®è¡å¯èœãªè§£æ±ºçããŸã èŠãããšãã§ããªãã¹ããŒã¹ã§ã®ããã¯ã§ããDockerã®åšãã«ã¯ãŸã ã·ãŒã¯ã¬ããAPIãæäŸãããŠããªããããã©ã°ã€ã³å¯èœãªã·ãŒã¯ã¬ãããã©ã€ããŒããããŸããããã»ã¹å®è¡åã®ã³ã³ããå ã®å€æ°ã§ãããdocker createããã»ã¹ïŒãŸãã¯ã¡ã¿ããŒã¿ïŒã®äžéšãšããŠã§ã¯ãªããã·ãŒã¯ã¬ããã«12ãã¡ã¯ã¿ãŒæºæ ããããã®å®å šãªæ¹æ³ã§ãããããããDockeréçºã³ãã¥ããã£ã¯ããã«ããéå§ãããšãã«ãã®ã¢ã€ãã¢ã䜿çšã§ããŸããç§å¯-圌ãããããè¯ããã®ã ãšæããªããapi / driverïŒ
ããããŒãããã³ã°ïŒ
@gtmtechã説æãããããªã¢ãããŒãã䜿çšããŠããã倧ããªæåãåããŠããŸãã KMSã§æå·åãããã·ãŒã¯ã¬ãããç°å¢å€æ°ãä»ããŠæ¿å ¥ããå¿ èŠã«å¿ããŠã³ã³ããå ã®ã³ãŒãã埩å·åããŸãã
éåžžãããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®åã«ããåçŽãªã·ã ãšã³ããªãã€ã³ããå«ãŸããŸãã çŸåšãã·ã§ã«ãšå°ããªGolangãã€ããªïŒhttps://github.com/realestate-com-au/shushïŒãçµã¿åãããŠãã®ã·ã ãå®è£ ããŠããŸãããpure-Goã¢ãããŒãã®ãµãŠã³ããæ°ã«å ¥ã£ãŠããŸãã
@ gtmtech @ mdubããããã£ãšèŠãŠåãã§ããããšã¯ééããããŸããã
@ dreamcat4 ãè€éãã®å®çŸ©ã¯ãã¹ã«äŸåããå¯èœæ§ããããšæããŸãããããã¯æããã«åé¡ãããŸããã ããã§ããããã¯ããããæœè±¡åå¯èœãªå€æã«ã¯ãªãåŸãŸããã ãããã£ãŠãDockerã³ã³ãããŒå
ã®ã»ãã¥ãªãã£ã©ãããŒã¯ãèšèšã¬ãã«ã§ã¯ããã»ã©è€éã«èŠããŸããã ãã1ã€ã®åŽé¢ã¯ããã¹ããã©ã¯ãã£ã¹ã§ãããããã¯ãéçºè
ã®ã¿ã®èŠ³ç¹ããã§ã¯ãªããéçšã®èŠ³ç¹ããæ€èšããå¿
èŠããããŸãã
ç§ã®2ã»ã³ã
Vault +1
Vault-1ã Vaultã«ã¯ãå€ãã®äººã«ãšã£ãŠæ¬åœã«æãŸãããªãæäœäžã®ç¹æ§ïŒéå°ïŒããããŸãã
ãã©ã°å¯èœãªAPIã䜿çšããã®ãæãçã«ããªã£ãŠããŸãã
ansibleã®ããŒã«ãããããŸãã ããã¯ããªãå¥ã®ç£ã§ãã
@gtmtechææ¡ã«æè¬ãããã®ãšã³ããªãã€ã³ããæžãããã«ä¿ããŸããã
#!/bin/bash
if [ -d "/var/secrets" ]; then
tmpfile="$(mktemp)"
for file in /var/secrets/*
do
if [ -f $file ]; then
file_contents=$(cat $file)
filename=$(basename "$file")
underscored_filename="${filename//-/_}"
capitalized_filename=${underscored_filename^^}
echo "export $capitalized_filename=$file_contents" >> $tmpfile
fi
done
source $tmpfile
rm -f $tmpfile
fi
exec "$@"
ãã®ããã«Dockerfile
è¿œå ããã ãã§ãïŒ chmod + x
ãå¿ããªãã§ãã ããïŒïŒ
ENTRYPOINT ["/app/docker-entrypoint.sh"]
ãããŠåºæ¥äžããã å®è¡æã«å©çšå¯èœãªENVå€æ°ã ååã§ã:)
ç§ãæ£ããç解ããŠããã°ã /var/secrets
ãã£ã¬ã¯ããªã¯ããªã¥ãŒã ãä»ããŠããŠã³ãããå¿
èŠããããŸããïŒ
ãŸããã·ãŒã¯ã¬ããããã£ã¹ã¯ã«æžã蟌ãŸããŠããªããšããã³ã¡ã³ããããå Žåããã£ã¹ã¯ã«æžã蟌ãã§ããåé€ããã®ã¯ã©ãã»ã©æªãããšã§ããïŒ
è¯ãã§ããïŒ ãã ãããã¡ã€ã«ãå®å
šã«åé€ããã«ã¯ã shred
ã䜿çšããå¿
èŠããããŸãã
2016幎3æ3æ¥ïŒæšææ¥ïŒã«ã¯ããã¢ã³ã»ã€ã°ãã·ãªã»Donoso [email protected]
æžããŸããïŒ
ç§ãæ£ããç解ããŠããã°ã/ var / secretsãã£ã¬ã¯ããªã¯
ããªã¥ãŒã ã¯æ£ããã§ããïŒ
ãŸãããã£ã¹ã¯ã«æžã蟌ãŸããŠããªãç§å¯ã«ã€ããŠã®ã³ã¡ã³ããããå Žåãã©ã®ããã«
æªãã®ã¯ããããããã£ã¹ã¯ã«æžã蟌ãã§ããåé€ããããšã§ã???â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/docker/issues/13490#issuecomment-191887424 ã
ã«ã€ã»ããªãã§
@gtmtechã®ãç§å¯
ADD shush_linux_amd64 /usr/local/bin/shush
ENTRYPOINT ["/usr/local/bin/shush", "exec", "--"]
ããã«ããã KMS_ENCRYPTED_xxx
äžå€å€æ°ã埩å·åãããçµæãç°å¢ã«æ»ãããŸãã
https://github.com/realestate-com-au/shush#use -as-a-command-shim
ãããã£ãŠãã¹ã¬ããã¯ããããã®ããšã¯äœãããªãã§ãã ãã.....ãã§å§ãŸããŸãã
...ãããããããã®ããšã代ããã«å®è¡ããŠãã ãã...ã»ãšãã©æåŠ/ã¯ããŒãºãããããŸããŸãªææ¡/ããã¯ã®ã¿ã衚瀺ãããŸãã
ä»ã®ãšããå ¬åŒã®ãã¹ããã©ã¯ãã£ã¹ã¯äœã§ããïŒ DockerãŠãŒã¶ãŒãšããŠãç§ãã¡ããã¹ãã§ã¯ãªãããšã®é·ããªã¹ããèŠãã®ã¯å°ãã€ã©ã€ã©ããŸãããå ¬åŒã®ä»£æ¿æ¡ã¯æäŸãããŠããŸããã ç§ã¯äœãã足ããªãã®ã§ããïŒ ååšããŸãããïŒ èå°è£ã§ç©äºãèµ·ãã£ãŠããããšã¯ç¢ºãã§ãããããã¯DockerããŒã ãåãçµãã§ããããšã§ãããçŸæç¹ã§ã¯ãæ£èŠã®è§£æ±ºçãæ瀺ããããŸã§ãç§å¯ã®ç®¡çãã©ã®ããã«åŠçããã®ãæåã§ããããã
@alexkolson
ç§ãç解ããŠããéããå®è¡æã«ã·ãŒã¯ã¬ãããå¿
èŠãªå Žåã¯ãããªã¥ãŒã ïŒãã¡ã€ã«ã·ã¹ãã ã·ãŒã¯ã¬ããïŒãŸãã¯HashiCorp VaultïŒãããã¯ãŒã¯ã·ãŒã¯ã¬ããïŒãªã©ã®ãµãŒãã¹ã䜿çšããå¿
èŠããããŸãã
ãã«ãæã®ç§å¯ã«ã€ããŠã¯ããã£ãšè€éã§ãã
ããªã¥ãŒã ã¯ãã«ãæã«ãµããŒããããªããããã³ã³ãããŒã䜿çšããŠãã¡ã€ã«ã·ã¹ãã ãå€æŽããã³ãã³ããå®è¡ããdockercommitã䜿çšããå¿
èŠããããŸãã
ãããã£ãŠãäžè¶³ããŠããã®ã¯ã docker commit
ã䜿çšããã«ãDockerfile以å€ã䜿çšããã«ãã«ãæã«ã·ãŒã¯ã¬ããã管çããæ©èœã§ãã
ã·ãŒã¯ã¬ããã«ãã¡ã€ã«ã·ã¹ãã ã䜿çšããããšã¯å®å šã§ã¯ãªããDockerããŒã¢ã³ã¯ã·ãŒã¯ã¬ãããå®å šã«æäŸããããã®APIãæäŸããå¿ èŠããããšããèšã人ãããŸãïŒãããã¯ãŒã¯/ãã¡ã€ã¢ãŠã©ãŒã«/èªåããŠã³ãããªã¥ãŒã ã䜿çšããŸããïŒïŒã ãããããã®APIãã©ã®ããã«èŠãããããããŠãããã©ã®ããã«äœ¿çšãããã«ã€ããŠã¯ã誰ãèããŠããŸããã
env varsã®æ¬ ç¹ã«ã€ããŠèãããšãã次ã®ãããªDocker以å€ã®ç¹å®ã®åé¡ã«ã€ããŠèããŸãã
ãã®ã¹ã¬ããã®äžéšã«ç€ºãããŠãã匱ç¹ïŒ
ã³ã³ããå ã®ä»»æã®ããã»ã¹ããã¢ã¯ã»ã¹ã§ãããããç°¡åã«ããªãŒã¯ããããŸã
äžãã1ãš2ãã¯ãã¹ã¢ãã©ã€ããŸãã åæ³ã§ããã泚æããŠå¯ŸåŠããŸãããïŒ ããã«ãDockerã³ã³ããã¯ããã«ã¹ã¿ãã¯WebãµãŒããŒãããã¯ããã«å°ãªãããã»ã¹ãå®è¡ããŸãã
env varã®configã¯ã©ãã§ããïŒããããsecret env varsã«ã¯æå·åãããå€ããããã¢ããªã«ã¯ã³ãŒãã®ããŒããããŸããïŒ ããŒã¯ã³ãŒãå ã«ãããããããã¯åãªãé£èªåã§ãããããŒå€æ°ãšenvå€æ°ã®äž¡æ¹ã«ã¢ã¯ã»ã¹ããã«ã¯ãšã¯ã¹ããã€ããå¿ èŠã«ãªããŸãã ãããããæ§æ管çã䜿çšããŠãã¢ããªã³ãŒãã§ã¯ãªãDockerãã¹ãã®ããŒã管çããŸãã ã«ãŒãžã¥ããã»ã¹ãå¶çºçãªãªãŒã¯ã«ã¯åœ¹ç«ã€å¯èœæ§ããããŸãããããŒãæã£ãŠãã人ããã®ã€ã³ãžã§ã¯ã·ã§ã³æ»æã«ã¯æãââãã«åœ¹ç«ã¡ãŸããã
ç»åã®äžéã¬ã€ã€ãŒã«ä¿åãããDockeræ€æ»ã§è¡šç€ºãããŸã
å®è¡æã«èšå®ããã®ã§ã¯ãªããç°å¢å€æ°ãDockerã€ã¡ãŒãžã«çŒãä»ããŠããã®ã§ããããããšãç§ã¯ããã誀解ããŠããŸããïŒ ã·ãŒã¯ã¬ãããã¢ãŒãã£ãã¡ã¯ãã«æ»ãããšã¯ãããŸãããïŒ ã¯ãsudo docker inspect container_name
ã¯env varãæäŸããŸãããç§ã®æ¬çªãµãŒããŒäžã«ããå Žåãivã¯ãã§ã«å€±ãããŠããŸãã sudo docker inspect image_name
ã¯ãå®è¡æã«èšå®ãããenvvarsã«ã¢ã¯ã»ã¹ã§ããŸããã
ã³ã³ããã«ãªã³ã¯ãããŠããã³ã³ãããšå ±æ
代ããã«ãªã³ã¯ãšæ°ãããããã¯ãŒã¯ã䜿çšããªãã®ã¯ã©ãã§ããïŒ
Dockerã®åé¡ã®ããã«èŠããæ®éçã§ã¯ãªãå¯äžã®åé¡ã¯ãªã³ã¯ã§ã...
docker build
éã«ç§å¯ãåŠçããããã®è¯ãæ¹æ³ãå¿
èŠãšãã人ã
ã®é£å¶ã«ç§ãå
¥ããŠãã ããã äžéšã®phpãããžã§ã¯ãã«ã¯composerã䜿çšããäŸåé¢ä¿ã«ã€ããŠã¯ããã€ãã®ãã©ã€ããŒãgithubãªããžããªãåç
§ããŸãã ã€ãŸããã³ã³ããå
ã«ãã¹ãŠãæ§ç¯ããå Žåã¯ããããã®ãã©ã€ããŒããªããžããªã«ã¢ã¯ã»ã¹ããããã«sshããŒãå¿
èŠã§ãã
Dockerã«ã€ããŠæçã ãšæãä»ã®ããã€ãã®ããšãæã¡è² ããããšãªãããã®èŠå¢ãåŠçããããã®é©åã§è³¢æãªæ¹æ³ãèŠã€ããããŸããã§ããïŒ docker squash
ïŒã
ããã§ãã¢ããªã±ãŒã·ã§ã³ã®äžéšãã³ã³ãããŒã®å€ã«æ§ç¯ãã COPY
ã䜿çšããŠæçµè£œåãã³ã³ãããŒã«åã蟌ãããšã«ååž°ããå¿
èŠããããŸããã ãŸãã
docker build
ã¯ãã·ãŒã¯ã¬ãããªã©ã®äžæçãªããŒã¿ãåŠçããŠãæçµçãªèŒžéã³ã³ããã«å
¥ããªãããã«ããããã®æ©èœãå¿
èŠã ãšæããŸãã
Dockerãã«ãã«ã¯ãã·ãŒã¯ã¬ãããªã©ã®äžæçãªããŒã¿ãåŠçããããã®æ©èœãå¿ èŠã ãšæããŸã
ããã¯å²åŠçãªåé¡ã§ãããæè¡çãªåé¡ã§ãã ãã®ãããªäžæçãªããŒã¿ã¯ãDockerã®æ¬è³ªçãªå©ç¹ã§ããåçŸæ§ãæãªãããšã«ãªããŸãã
Dockerã®å²åŠã¯ãDockerfileãšã³ã³ããã¹ãã§ã€ã¡ãŒãžãæ§ç¯ããã®ã«ååã§ãããšããããšã§ãã
çµæã®ã€ã¡ãŒãžã®å€éšã«ã³ã³ããã¹ããå¿
èŠãªå Žåã¯ããããã¯ãŒã¯ããããããã§ãããããã¡ã€ã«ã·ã¹ãã ãžã®æžã蟌ã¿ãã¹ãããããå¿
èŠããããŸãã ãã¹ãŠã®Dockerfileè¡ããã¡ã€ã«ã·ã¹ãã ã¹ãããã·ã§ããã«ãªãããã§ãã
ã·ãŒã¯ã¬ãããã€ã¡ãŒãžã®äžéšã«ãã¹ãã§ãªãå Žåã¯ããšãã§ã¡ã©ã«ã³ã³ãããå®è¡ã§ããŸããããã«ãããã·ãŒã¯ã¬ããã§ä¿è·ããããã¹ãŠã®ãªãœãŒã¹ããã©ãŒãªã³ã°/ãããã·ãããã·ãŒã¯ã¬ããã®ãªãã¢ã¯ã»ã¹ãæäŸãããŸãã ãã©ãŒãªã³ã°ããšããã§ãå¥ã®çè«çæ ¹æ ããããŸãïŒ https ïŒ
sshããŒèªäœãå ±æã§ããŸããããã®äœ¿çšæ³ãå¶åŸ¡ããããšã¯ã§ããŸããã
@ bhamilton-idexxãã©ã€ããŒããªããžããªãžã®èªèšŒãçåœã®ããŒã¯ã³ã§æ©èœããããšã確èªããã°ãDockerã€ã¡ãŒãžã«ç§å¯ãä¿æãããŠããããšãå¿é
ããå¿
èŠã¯ãããŸããã
ãã«ãã·ã¹ãã ã«1æéã®ttlã§ããŒã¯ã³ãçæããããããç°å¢å€æ°ãšããŠDockerãã«ãã§äœ¿çšã§ããããã«ããŸãã
ãã«ãã¯å¿
èŠãªãã«ãã®è©³çŽ°ãååŸã§ããŸããããã«ããå®äºããçŽåŸã«ã·ãŒã¯ã¬ãããã¿ã€ã ã¢ãŠããããã®æ»æãã¯ãã«ãéããããŸãã
ãããã®ã¹ã¬ããã®æãä»èªãã§ããŠãããã§ããã€ãã®ãŠãŒã¹ã±ãŒã¹ã解決ããç§å¯ã®å€ã®ãŠãŒã¹ã±ãŒã¹ãæã€1ã€ã®æ©èœã¯ããã¡ã€ã«ãã³ã³ããã«ã³ããŒããdocker run
--add
ãã©ã°ã§ãã Dockerfilesã®ADD
ã¹ããŒãã¡ã³ã
ãã®èšäºã¯A +ã§ãhttp://elasticcompute.io/2016/01/21/runtime-secrets-with-docker-containers/
ããã¯ç¢ºãã«çŽ æŽãããèšäºã§ãã ãšãŠãããèªãã ã ãããŠãŸãã«ç§ãã¡ãèŠãããšæã£ãŠãããããªãã®ã§ãã
ãšããã§ïŒ
ãŸããèšäºããèŠéãããŠããããã«èŠããä»ã®ç§å¯ã®ããŒã«ãããã€ãèŠã€ãããŸããã ç¹°ãè¿ã/éè€ããŠãã¿ãŸããã ããã§ããŸã èšåãããŠããããšã«æ°ã¥ããŠããŸããã§ããïŒ
æéã®ç§å¯ãæ§ç¯ããïŒ
https://github.com/defunctzombie/docket
å®è¡æã®ç§å¯ïŒ
https://github.com/ehazlett/docker-volume-libsecret
人ã ã¯ã©ãæããŸããïŒ ã©ããããããšãã
ç§ã®ããïŒ
ãããã®æ°ããããŒã«^^ã¯ä»ãšãŠãããèŠããŸãã ãããŠãç§ãã¡ããã®ãã±ãããæåã«å§ãããšãããããã¯ç¢ºãã«ååšããŠããŸããã§ããã ããããç§ãä»æããŠããäž»ãªããšã¯ããŸã æãæ¬ ããŠãããŸãŸã§ãïŒ
DockerHubã§ãã«ãæã®ã·ãŒã¯ã¬ããã®æ©èœãåäžããŠããŸãã ã©ã¡ãã貧匱ã§ãã©ã¡ãããéžæããå¿ èŠããããŸãã äžæ¹ã®ãœãªã¥ãŒã·ã§ã³ã®ã¡ãªãããããäžæ¹ã®ãœãªã¥ãŒã·ã§ã³ã®ã¡ãªããã®ããã«æŸæ£ããå¿ èŠããããŸãã æ©èœã®å šäœçãªã»ããã«å¿ããŠãããéèŠã«ãªããŸãã ããŒã«ã«ã®å»ºç©ã¯ç§å¯ãå®å šã«ä¿ã€ããã«ééããªãåªããŠããŸãããä»ã®ç¹ã§ã¯Dockerhubãããåœç¶æªãã§ãã
æ°ããç»å圢åŒã䜿çšãããdocketã«äŒŒãå¥ã®ããŒã«ãäœæããŸããã
https://github.com/AngryBytes/docker-surgery
ãã®å®è£
ã§ã¯ãæåã«SECRETS
ãšã³ã¡ã³ããããã·ãŒã¯ã¬ãããå«ãã¬ã€ã€ãŒãäœæãã次ã«FROM
å€æŽããŠDockerfileã®ã³ããŒãäœæãããã«ãããŠãæåŸã«ãã¹ãŠã®SECRETS
ã¬ã€ã€ãŒãçµæã®ã€ã¡ãŒãžããåé€ããŸãã
ããããããã³ã°ããããšã«ã¯åžžã«æ³šæãå¿
èŠã§ããDockerã«ãªããŒã¹ãŸãã¯ã¬ã€ã€ãŒã¹ãã©ã€ã·ã³ã°æ©èœãçµã¿èŸŒãŸããŠãããšãããããçºçããŸãã ãã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã¯èå°è£ã§docker save
/ docker load
ãã³ã¹ãè¡ããªããã°ãªããªããããçŸåšäžéã¬ã€ã€ãŒãåé€ããã®ã¯æéãããããŸãã
ããã«ããã«ããã£ãã·ã¥ãå£ããŠããŸãã çŸåšãã³ã¡ã³ãä»ãã®ã·ãŒã¯ã¬ããã¬ã€ã€ãŒãäœæããããã«docker commit
ã䜿çšããŠããŸããããããã®ã¬ã€ã€ãŒã®é©åãªãã£ãã·ã¥ãç¶æããããšã¯ããŸã å€ãã®äœæ¥ã§ãããå®è¡ããå¯èœæ§ã¯äœãã§ãã Dockerfileã䜿çšããŠã·ãŒã¯ã¬ããã¬ã€ã€ãŒãäœæãããšãããã解決ã§ããå ŽåããããŸãããã¬ã€ã€ãŒã«ã³ã¡ã³ããä»ããæ段ããªããããåŸã§äœãåé€ããããæ£ç¢ºã«ç¹å®ããããšã¯å°é£ã§ãã
@Vanuan [Dockerfile]ã¯åçŸæ§ããããŸããã RUNã³ãã³ãã¯ã2åã®å®è¡ã§ãŸã£ããåãã€ã¡ãŒãžãååŸããããšãããªããšç§ãåççã«æåŸ ã§ããªãããšãä¿èšŒããŸãã ã©ãããŠïŒ ã»ãšãã©ã®å Žåã人ã ã¯RUNã䜿çšããŠãããã¯ãŒã¯ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã§ãã ç§ãšåãç»åãå¿ èŠãªå Žåã¯ãç¬èªã®ç»åãFROMããäœæããå¿ èŠããããŸãã ä»ã®é 眮ã§ã¯åãç»åãåŸãããŸããã ä»ã®é 眮ã§ã¯åãç»åãåŸãããšãã§ããŸããã ãã¹ãŠã®æ°žç¶çãªåçŸæ§ã¯ãDockerfileã§ã¯ãªãDockerHubããããããããŸãã
ãšãã§ã¡ã©ã«ããŒã¿ãååŸã§ããªãçç±ã®å¯äžã®é²åŸ¡çããDockerããšãã§ã¡ã©ã«ããŒã¿ããã¹ãŠåé€ã§ãããšèããŠããããã§ããå Žåã¯ãRUNåœä»€ãéæšå¥šã«ããå¿ èŠããããŸãã
@stephankå°ãç°ãªãã¢ãããŒãããšã
ãããŠããã¯ãVOLUMEã®ãããžã§ã¯ãã³ãŒãã§ããã«ããããŒãžã£ãŒããå®è¡ããããšã§ãã 次ã«ããããŒãžã£ãŒã¯ããããŒãžã£ãŒã®ããªã¥ãŒã ã䜿çšããŠãããžã§ã¯ãã³ãŒããããŠã³ããããåå¥ã®ã³ã³ãããŒã§ä»»æã®æ°ã®ãã«ãããŒã«ãå®è¡ããŸãã ãããã£ãŠããã«ããããã¢ãŒãã£ãã¡ã¯ãããã®ä»ã®çæããããã¡ã€ã«ã¯ãããŒãžã£ãŒããªã¥ãŒã ã«ä¿æãããåãã«ãã¹ãããã®ãã«ããã€ãã©ã€ã³ã«æ²¿ã£ãŠå®è¡ãããŸãã æåŸã«ããããŒãžã£ãŒã¯ãçæããããã«ãçµæã䜿çšããŠãæçµçãªãããã¯ã·ã§ã³ã€ã¡ãŒãžããã«ãã§ããŸãã éäžã§å¿ èŠãªã·ãŒã¯ã¬ããã¯ããããŒãžã£ãŒããã«ãã³ã³ãããŒã§å©çšã§ããŸãããæçµçãªã€ã¡ãŒãžã§ã¯å©çšã§ããŸããã Dockerã€ã¡ãŒãžãŠã£ã¶ãŒãã¯äœ¿çšãããŠãããããã«ããã£ãã·ã¥ã¯æåŸ ã©ããã«æ©èœããŸãã
ãã«ããã€ãã©ã€ã³ãã©ã®ããã«èŠãããã¯ããã«ãèŠä»¶ãæ§æããã¹ããã¯ãã¡ã€ã«ã䜿çšãããããžã§ã¯ã次第ã§ãã
å®éã®ãšãããç§ã¯ãã®ããŒã«ã«ã€ããŠããªãèªå€§å®£äŒãããŠããããªãŒãã³ãœãŒã¹ãšããŠãªãªãŒã¹ã§ããããã«ãªãã®ãåŸ ã£ãŠããŸãïŒäŒç€Ÿã®ããªã·ãŒã¬ã€ãã©ã€ã³ãæ¡çšãããã®ãåŸ ã£ãŠããŸãïŒã
@kaosäžæ¹ã§ã¯ãã¹ããã¯ã®DockerããŒã«ããéžè±ããããããŸããã§ããã äžæ¹ã§ãã€ã¡ãŒãžæ§ç¯ããŒã«å士ã®ç«¶äºã¯ãã£ãšããã¯ãã ãšæããŸãã é¢çœããã§ããïŒ ð
@thaJeztah for environmentïŒ12-factorïŒsecretsãInspectã«ããç°å¢å€æ°ã®ãªãŒã¯ãé²ãããã«TwistlockïŒ+ ScalockïŒãä»ããŠDockerããŒã¢ã³ãããã¯ããŠã³ããŠããŸãã ãããããé©åãªçŸå®ã«ããããã«ãinspectãä»ããŠç¹æš©æ å ±ãããã»ã©æŒãããªãDockerãã€ãã£ãã®æ©èœãããã°çŽ æŽããããšæããŸãã
@alexkolson XãYãZã軜æžããªãéãããã®ã¹ã¬ããã®éµã¯ãDONT DO THISãã ãšæããŸããããã¯æããã«ãšã³ãžãã¢ãªã³ã°ã®ããŒãã§ãããäžè¬çãªåé¡ã«ã¯åžžã«ã解決çãããããŸãã ãšã¯ãããå®éã®åé¿çãéå§ã§ããããã«ãäœããã¹ãã§ãªãã®ãããªããããè¡ãã®ãã«ã€ããŠã®æè²ãéèŠã§ãã æªéã¯åžžã«ããã©ã«ãã«ãªã£ãŠããã®ã§ãæ°ãããŠãŒã¶ãŒãäœãå±éºã«ãããããŠãããã確å®ã«ç解ããå¿ èŠããããŸãã
Dockerã®çµéšãããŸããªãã®ã§ãçããã®äœäººããç§ãå©ããŠããããããããŸããã
HashicorpsVaultã䜿çšããŠç§å¯ãååŸããŸããã
ç§ãåºæ¬çã«è¡ã£ãããšã¯ããã«ãåŒæ°ãšããŠããŒã¯ã³ãæž¡ãããšã§ãããããŒã¯ã³ã䜿çšããŠãVaultããæ©å¯æ å ±ããã§ããã§ããŸãã ããã¯ãã«ãæã«çºçããVaultããå°å°è§£é€ãïŒããŒã¿ã®ãã§ããçšã«éããŠããïŒç¶æ ã®å Žåã«ã®ã¿æåããŸãã 䜿çšæžã¿ããŒã¯ã³ãäœæãããšãåãæ¶ãããŸãã
ããããç§ã¯ãŸã ããã€ãã®äžè¬çãªåé¡ã«çŽé¢ããŠãããšæããŸãã
docker inspectã§äœ¿çšæžã¿ããŒã¯ã³ãèŠã€ããããšã¯å¯èœã§ããã䜿çšã§ããªããªããŸããã
ã·ãŒã¯ã¬ããã¹ãã¢ã§ã®ã¢ã¯ã»ã¹ãå¯èœãªéãå¶éããããã«ããã«ãæã«ã®ã¿hashicorpsããŒã«ããå°å°ããã³éå°ããããšãéžæããŸããã ãŸããå®è¡æã«ããŒã¿ããã§ãããããšãã«ã·ãŒã¯ã¬ãããä¿åããŠãããªãã·ã§ã³ããããŸããã§ããã
ããã§ãç§ã¯ãããã©ãã»ã©ã²ã©ãããŸãããïŒç§ã倧ããªæéãå°ç¡ãã«ãããã©ãããèšã£ãŠã倧äžå€«ã§ã;ïŒïŒèª°ããç§ãç©äºãããå®å šã«ããããã®ãã³ããšã³ããæã£ãŠããŸããïŒ
@weemenAFAIKã§ç»åã«ç§å¯ãä¿åããããšããå§ãã§ããŸããã ã€ã¡ãŒãžã«ã¯ãã¯ã¬ãã³ã·ã£ã«ïŒVaultããŒã¯ã³ãå«ãïŒãçµã¿èŸŒãŸããŠããªãå¿ èŠããããŸãã 代ããã«ãã³ã³ããã«Vaultã®app-id authããã¯ãšã³ãã䜿çšããŠãèªã¿èŸŒã¿æã«ã·ãŒã¯ã¬ãããååŸããŸãã 䜿çšããŠããã¢ããªã¹ã¿ãã¯ã«å¿ããŠãäœããã®æ¹æ³ã§ã³ã³ããã®ã¡ã¢ãªã«ä¿åããŸãã
ãŸããVaultã¯aws authããã¯ãšã³ãã«åãçµãã§ãããAWSãã¯ã©ãŠããããã€ããŒãšããŠäœ¿çšããŠããå Žåã«å°æ¥çã«åœ¹ç«ã¡ãŸãã
@ jaredm4ãã®ã¹ããŒãã¡ã³ããæ確ã«ããŠããã ããŸããïŒïŒ
ã代ããã«ãã³ã³ããã«Vaultã®app-id authããã¯ãšã³ãã䜿çšããŠãèªã¿èŸŒã¿æã«ã·ãŒã¯ã¬ãããååŸããŸãã䜿çšããŠããã¢ããªã¹ã¿ãã¯ã«å¿ããŠãäœããã®æ¹æ³ã§ã³ã³ããã®ã¡ã¢ãªã«ã·ãŒã¯ã¬ãããä¿åããŸããã
VaultïŒãŸãã¯Keywhizãªã©ïŒããã·ãŒã¯ã¬ããããã€/ã©ãã§ååŸãããã¯ãŸã ããããŸããã ããã¯ãDockerãå®è¡ãããå®è¡ã³ãã³ãã«æž¡ãããåã«å®è¡ãããŸããïŒ ããã¯ãã³ã³ããã®åæåäžã®ããæç¹ã§çºçããŠããŸããïŒããå Žåã¯ãäŸããããŸãïŒïŒ ã¢ããªã±ãŒã·ã§ã³ã¯å¿ èŠãªãšãã«ããããååŸããå¿ èŠããããŸããïŒ ããšãã°ãç§ã®Railsã¢ããªã«ã¯Google APIããŒãå¿ èŠã§ãããããŒãå¿ èŠãªãšãã«ããŒã«ããåŒã³åºãããã«Railså ã«äœããèšè¿°ããŸããïŒ
Vaultã®ãããªãã®ã䜿çšããå¿ èŠæ§ãšããããæ§æããæ¹æ³ã«ã€ããŠã¯æ確ã ãšæããŸãããµãŒãã¹ãå©çšããrailsã®èµ·åæã«ymlãã¡ã€ã«ãæŽæ°ããŠæºåããæ¹æ³ã«ã€ããŠã¯æ確ã§ã¯ãããŸããã
ããã§ã®ã¬ã€ãã³ã¹ãããã ããã°å¹žãã§ãã ããããšã
確ãã«@mcmatthewã§ãããç§ã¯ãŸã Vaultããã¹ã¿ãŒããããšããŠããã®ã§ãç§ã®çµéšã¯ããªã軜ããšèšã£ãŠå眮ãããå¿ èŠããããŸãã
ç§ãã³ãŒãã£ã³ã°ããããšããŠããæ¹æ³ã¯ãã³ã³ããã«æž¡ãæ
å ±ã¯ãã³ãŒããVaultã§èªèšŒã§ããããã«ããããã«å¿
èŠãªæ
å ±ã ãã§ãããšããããšã§ãã app-idããã¯ãšã³ãã䜿çšããŠããå Žåãããã¯app-id
èªäœã§ãããVaultã®ã¢ãã¬ã¹ã«ãªããŸãã
ã³ã³ããã®èµ·åæã«ãRailsã¢ããªã¯ãŸã ã·ãŒã¯ã¬ãããæã£ãŠããªãããšã«æ°ä»ããVaultããã·ãŒã¯ã¬ããããã§ããããå¿
èŠããããŸãã app-id
ãæäŸãããŠãããäœããã®æ¹æ³ã§user-id
çæããå¿
èŠããããŸãã ãã®ãŠãŒã¶ãŒIDã®çæã¯ãŠãŒã¶ãŒã決å®ããå¿
èŠããããŸãããããã¥ã¡ã³ãã«ã¯ããéåžžãMACã¢ãã¬ã¹ãã€ã³ã¹ã¿ã³ã¹IDãªã©ã®ãã·ã³ã«åºæã®å€ããŸãã¯ãããã®äžæã®å€ããããã·ã¥ãããå€ããšèšèŒãããŠããŸãã
Railsã¢ããªã§app-idãšuser-idã®æºåãã§ããããVaultã®APIã䜿çšããŠ/ loginã§ããŸãã ãããããAPIåŒã³åºããè¡ã£ãŠãå¿ èŠãªã·ãŒã¯ã¬ãããååŸã§ããŸãã
ããã§ãã¡ã¢ãªã«ä¿åããããšã®æå³ãæ確ã«ããŸããããã¯ã䜿çšããŠããã¢ããªã®çš®é¡ã«ãã£ãŠç°ãªããŸãããRailsã䜿çšãããšãRailsãã¢ã¯ã»ã¹ã§ããããã«ãããŠãŒã¶ãŒã©ã³ãå€æ°ãã£ãã·ã¥ã«ã·ãŒã¯ã¬ãããä¿åããæ¹æ³ãå¿ èŠã§ãã VaultããäœåºŠãååŸããã®ã§ã¯ãªãããã¹ãŠã®ãªã¯ãšã¹ããã¡ã¢ãªããç§å¯ã«ããŸãïŒæ³åã§ããããã«é ãã§ãããïŒã Railsã§ã®ãã£ãã·ã¥ã«é¢ãããã®ã¬ã€ããã芧ãã ããã ã€ãŸããã»ã¯ã·ã§ã³2.0ã§ããããã£ã¹ã¯ã§ã¯ãªãmemory_cacheã䜿çšããŠããããšã確èªããŠãã ããã
æåŸã«ãã©ã®ããã«ã³ãŒãã£ã³ã°ããå Žåã§ããç¹å¥ãªDockerãšã³ããªãã€ã³ãã¹ã¯ãªãããªã©ã䜿çšããã«ãRailsã§ã³ãŒãã£ã³ã°ããããã«ããŠãã ããã Railsã¯ã¡ã¢ãªå ã®ã·ãŒã¯ã¬ãããæ€åºããååšããªãå Žåã¯ãããããã§ããããå¿ èŠããããŸãã
ãããã圹ã«ç«ãŠã°å¹žãã§ãã å°ãé«ãã¬ãã«ã§ããããããç§ãã¡ãããã«åãçµãããšãèšç»ããæ¹æ³ã§ãã
æ確ã§ãªãã®ã¯ãäœãç§å¯ã«ããŠããã¹ãããapp-idãuser-idããŸãã¯ãã®äž¡æ¹ã§ãã
ããããŸãããçãã¯äž¡æ¹ãšãhttps://www.vaultproject.io/docs/auth/app-id.htmlã§ãã
ãããããããåãªããã¡ã€ã¢ãŠã©ãŒã«ã¢ã¯ã»ã¹ãããå®å
šã§ããçç±ã¯ãŸã æããã§ã¯ãããŸããã
å€åããã¯åãã¹ãã·ãŒã¯ã¬ãããã¢ããªã±ãŒã·ã§ã³ïŒããªã·ãŒïŒã·ãŒã¯ã¬ãããšçµã³ä»ããããã¹ãã§ãããšããããšã§ããïŒ
ã€ãŸãããã¹ãã®ã·ãŒã¯ã¬ããã«ã¢ã¯ã»ã¹ã§ããå Žåããã®ã·ãŒã¯ã¬ããåãç¥ã£ãŠããã°ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããŸããïŒ
ããã§ã2ã€ã®ããŒã¯ã³ãã©ããã«ä¿åããå¿ èŠããããŸããïŒ
@Vanuanäž¡æ¹ãšããå¯èœãªéãç§å¯ã«ããŠããå¿ èŠããããŸãã
app-idã®äž»ãªç®çã¯ãããªã·ãŒãä»ããŠVaultå ã®ç¹å®ã®ã·ãŒã¯ã¬ãããžã®ã¢ã¯ã»ã¹ãå¶éããããšã§ãã app-idã«ã¢ã¯ã»ã¹ã§ãã人ã¯èª°ã§ãããã®app-idã®ããªã·ãŒã®ã·ãŒã¯ã¬ããã«ã¢ã¯ã»ã¹ã§ããŸãã app-idã¯ããããã€ã¡ã³ãæŠç¥ã«ãã£ãŠæäŸãããå¿ èŠããããŸãã ããšãã°ãChefã䜿çšããŠããå Žåã¯ããã©ã¡ãŒã¿ããã°ïŒãŸãã¯OpsWorksã®å Žåã¯CustomJSONïŒã«èšå®ã§ããŸãã ãã ããããèªäœã§ã¯ã誰ããVaultã«ã¢ã¯ã»ã¹ããããšã¯ã§ããŸããã ãã®ãããChefã«ã¢ã¯ã»ã¹ãã人ã¯ãVaultã«ã¢ã¯ã»ã¹ã§ããªããªããŸãã
ãŠãŒã¶ãŒIDã¯ChefããæäŸããããã®ã§ã¯ãªããããç¹å®ã®ãã·ã³ã«é¢é£ä»ããå¿ èŠããããŸãã ã¢ããªãã€ã³ã¹ã¿ã³ã¹éã§åé·ã«ã¹ã±ãŒãªã³ã°ãããå Žåãåã€ã³ã¹ã¿ã³ã¹ã«ã¯ç¬èªã®ãŠãŒã¶ãŒIDãå¿ èŠã§ãã ãã®ãŠãŒã¶ãŒIDãã©ãããæ¥ãã®ãã¯å®éã«ã¯åé¡ã§ã¯ãããŸãããïŒææ¡ã¯ãããŸããïŒãã¢ããªIDããããã€ããã®ãšåãå ŽæïŒã€ãŸããChefïŒããæ¥ããã®ã§ãã£ãŠã¯ãªããŸããã 圌ããèšã£ãããã«ãããã¯ä»ã®æ¹æ³ã§ã¹ã¯ãªããåããããšãã§ããŸãã ã€ã³ã¹ã¿ã³ã¹ã®ã¹ã±ãŒãªã³ã°ã«äœ¿çšãããœãããŠã§ã¢ãäœã§ããããŠãŒã¶ãŒIDãã€ã³ã¹ã¿ã³ã¹/ Dockerã³ã³ãããŒã«æäŸãããŠãŒã¶ãŒIDãã¢ããªIDã«æ¿èªããããšãã§ããŸãã ã€ã³ã¹ã¿ã³ã¹ãåçã«ã¹ã±ãŒãªã³ã°ããªãå Žåã¯ãæåã§è¡ãããšãã§ããŸãã 人éãæ°ããã€ã³ã¹ã¿ã³ã¹ãè¿œå ãããã³ã«ãæ°ãããŠãŒã¶ãŒIDãäœæãããããapp-idã«æ¿èªããæé©ãªæ¹æ³ã§ã€ã³ã¹ã¿ã³ã¹ã«æäŸããŸãã
ããã¯ãã¡ã€ã¢ãŠã©ãŒã«ã€ã³ã¹ã¿ã³ã¹ãããåªããŠããŸããïŒ ç¶æ³ã«ãããšæããŸãã ãã¡ã€ã¢ãŠã©ãŒã«ã¯VaultïŒafaikïŒã®ã·ãŒã¯ã¬ãããžã®ã¢ã¯ã»ã¹ãå¶éããŸããã誰ããããªãã®ã€ã³ã¹ã¿ã³ã¹ã«ã¢ã¯ã»ã¹ããå Žåããã®äººã¯ããªãã®Vaultã«ç°¡åã«äŸµå ¥ããå¯èœæ§ããããŸãã
ãã®ããã«ã圌ããããºã«ã®ãã¹ãŠã®ããŒã¹ãæã«å ¥ããã®ã¯é£ããã§ãã ããã«äžæ©é²ããããã«ãapp-idã§ã¯ã䜿çšããå¿ èŠã®ããCIDRãããã¯ã䜿çšã§ããŸãã 誰ããäœããã®æ¹æ³ã§app-idãšuser-idãååŸããå Žåã§ãããã®ãããã¯ãŒã¯ã«æ¥ç¶ããŠããªããã°Vaultã«ã¢ã¯ã»ã¹ã§ããŸããã§ããã
ïŒç¹°ãè¿ããŸãããããã¯ç§ãã§ããéãããã¥ã¡ã³ãã調ã¹ãåŸã®ç§ã®è§£éã§ãïŒ
@Vanuan @mcmatthewãã°ããã質åã§ãïŒ @ jaredm4ãã®èª¬æã«æ¬åœã«æè¬ããŸããããã¯ç¢ºãã«ç§ãå©ããŸãã ããã¯ãããå®çšçãªå®è£ ãæ¢ããŠãããã¹ãŠã®äººã«ãšã£ãŠéåžžã«äŸ¿å©ã§ã!! ä»åŸ2é±éã®æéãããã°ãããäžåºŠããçŽããŸãã
@thaJeztah ïŒ
ã³ã³ããå ã®ä»»æã®ããã»ã¹ããã¢ã¯ã»ã¹ã§ãããããç°¡åã«ããªãŒã¯ããããŸã
ãã®äž»åŒµãæ¯æã§ããŸããïŒ éç¹æš©ããã»ã¹ã¯ãé芪ããã»ã¹ã®ç°å¢å€æ°ã«ã¢ã¯ã»ã¹ã§ããŸããã https://help.ubuntu.com/community/EnvironmentVariables#Process_localityãåç §ããŠ
ã³ã³ããã«èšå®ãããç°å¢å€æ°ïŒ --env
ãŸãã¯--env-file
ä»ããŠïŒã¯ãã³ã³ããå
ã®ä»»æã®ããã»ã¹ããã¢ã¯ã»ã¹ã§ããŸãã
ãã¡ããã圌ãã¯ãšã³ããªãŒãã€ã³ãããã»ã¹ã®åãªã®ã§ã ã·ãŒã¯ã¬ããç°å¢å€æ°ã®èšå®ãã§ããã ãæ©ã解é€ããã®ã¯ããã®ããã»ã¹ããŸãã¯ã·ã§ã«ãªã©ã®å Žåã¯ããªãã®ä»äºã§ãã
ããã«éèŠãªã®ã¯ã0以å€ã®ç°ãªããŠãŒã¶ãŒIDãæã€ããã»ã¹ããã³ã³ãããŒã®å éšããã³/ãŸãã¯å€éšã§ãããã®ç°å¢å€æ°ã«ã¢ã¯ã»ã¹ã§ãããã©ããã§ãã ã³ã³ããå ã§äœ¿çšãããœãããŠã§ã¢ãé©åã«ç¹æš©ãåé€ããå Žåããããã¯åœãŠã¯ãŸããŸããã
話é¡ããå€ããŠããããšã¯ç¥ã£ãŠããŸããããã®åé¡ãã»ãŒ1幎éç¶ããŠããããšã«æ°ä»ãã人ã¯ããŸããïŒ ææ¥ã¯ãã®èšå¿µæ¥ã§ãã ð
ã³ã³ããããã»ã¹ãããã»ã¹ã¡ã¢ãªå ã®ç°å¢å€æ°ãèªã¿åããïŒç°å¢å ã§ïŒãããã®èšå®ã解é€ããããšã¯å¯èœã§ããããïŒ ããã«ãããå®è¡æã®ã»ãã¥ãªãã£ã«é¢ããæžå¿µã®ã»ãšãã©ãä¿®æ£ãããŸããïŒ
@davibeã®åé¡ã¯ãã³ã³ãããŸãã¯ãã®ããã»ã¹ãåèµ·åãããšããããã®envå€æ°ã倱ãããããããå埩ããæ¹æ³ããªãããšã§ãã
è©ŠããŸããããåèµ·ååŸãenvå€æ°ãæ®ã£ãŠããããã§ãã
dade<strong i="6">@choo</strong>:~/work/grocerest(master)$ cat test.js
console.log("FOO value: " + process.env.FOO);
delete(process.env.FOO);
console.log("FOO value after delete: " + process.env.FOO);
dade<strong i="7">@choo</strong>:~/work/grocerest(master)$ docker run --name test -it -e FOO=BAR -v $(pwd):/data/ node node /data/test.js
FOO value: BAR
FOO value after delete: undefined
dade<strong i="8">@choo</strong>:~/work/grocerest(master)$ docker restart test
test
dade<strong i="9">@choo</strong>:~/work/grocerest(master)$ docker logs test
FOO value: BAR
FOO value after delete: undefined
FOO value: BAR
FOO value after delete: undefined
ãã¶ãdocker-runã¯bashã®åãšããŠç§ã®ããšãå®è¡ããŠããŸããïŒ ãã¹ãã§ã¯ãªããšæããŸãã
@davibe ïŒ
unset 'SECRET_ENV_VAR'
ãã®ãã¹ãŠã®äž»ãªåé¡/æ©èœã¯ãDockerã«root
ãšããŠãã°ã€ã³ããããšã§ãããããã£ãŠãããŒã¯ã³ãããªã¥ãŒã ãå€æ°ãæå·åããŒãªã©ãã³ã³ãããŒå
ã«é
眮ãããã®ã¯ãã¹ãŠæ€æ»ã§ããŸãã .. ãªãã§ãã
ãããã£ãŠã1ã€ã®ã¢ã€ãã¢ã¯ãã³ã³ããããsudo
ãšsu
ãåé€ãã ENTRYPOINT
ãŸãã¯CMD
åã«USER
ã³ãã³ããè¿œå ããããšã§ãã ã³ã³ãããå®è¡ããŠãã人ã¯èª°ã§ãroot
ãšããŠå®è¡ããæ©äŒããªãã¯ãã§ãïŒç§ãééã£ãŠããªããã°ïŒããããã£ãŠãå®éã«åœŒããäœããé ãããšãã§ããŸãã
å¥ã®ã¢ã€ãã¢ïŒæè¯ã®IMHOïŒã¯ããŠãŒã¶ãŒãšã°ã«ãŒãã®æŠå¿µãDockerãœã±ãããšã³ã³ãããŒã«è¿œå ããŠãGROUP-AãTAG-Bã®ã³ã³ãããŒã«ã¢ã¯ã»ã¹ã§ããUSER-CãGROUP-ã«å±ããŠããããšã瀺ãããšã§ãããã®ããããããã®ã³ã³ããã«ã¢ã¯ã»ã¹ã§ããŸãã æäœããšã®æš©éã§ããå ŽåããããŸãïŒGROUP-Aã¯TAG-Bã®éå§/åæ¢ã«ã¢ã¯ã»ã¹ã§ããGROUP-Bã¯execã«ã¢ã¯ã»ã¹ã§ããGROUP-Cã¯rm / inspectã«ã¢ã¯ã»ã¹ã§ããŸãïŒã
ãããæ°æé調æ»ããåŸããã«ãæã®ã·ãŒã¯ã¬ããã«å¯ŸããŠå ¬åŒã«æšå¥šããã解決çãåé¿çããªãããã«æããããšã¯ä¿¡ããããŸãããhttpsïŒ//github.com/dockito/vaultã®ãããªãã®ãå¯äžã®å®è¡å¯èœãªãªãã·ã§ã³ã®ããã§ãããã«ãæã®ç§å¯ïŒçµæã®ã€ã¡ãŒãžå šäœãæŒãã€ã¶ããããæåã«æåã§ãã«ããããããããšã¯ã§ããŸããïŒã æ®å¿µãªããã httpsïŒ//github.com/dockito/vaultã¯sshããŒã«éåžžã«åºæã§ãããããgithttpsã¯ã¬ãã³ã·ã£ã«ã¹ãã¢ãã¡ã€ã«ããã¹ãããããã«ããããé©å¿ãããããšããŠããŸã...
æ°žé ã®ããã«æããåŸïŒåœåã¯2015幎第4ååæã®ãªãªãŒã¹ãäºå®ãããŠãããšèããŸããïŒãAWSECSã¯ã€ãã«IAMã®åœ¹å²ãDockerã¢ããªã«ãããããšããçŽæãããã°æçš¿ã§ãã
ãã®ãããªKMSã®è¯ããšçµã¿åãããããšã¯ãå®è¡å¯èœãªçæçãªè§£æ±ºçã®ããã§ãã çè«çã«ã¯ãç¹å®ã®ããªã³ã·ãã«/ IAMããŒã«ã«ã·ãŒã¯ã¬ããããã€ã³ãããŠãéèªèšŒããŒã«ããã¹ãã§ãªãããšãèŠæ±ããªãããã«ããå®å šãªã¹ãã¬ãŒãžãKMSã«ä»»ããå¿ èŠããããŸãã
ãŸã è©ŠããŠããŸããããç§ã®çããªã¹ãã«ãããŸã...
Kubernetesã«ã¯ãå€ãã®Chefæå·åããŒã¿ããã°ãæãåºãããç§å¯ã®åŠçãããããã§ãã
ããã¯ããã®ã¹ã¬ããã®èŠç¹ã§ãããã©ãããã©ãŒã ã«äŸåããªãOSSã®æ¹æ³ã§ã¯ãªãããšãç解ããŠããŸãã
ããããäœããå¿
èŠãšããŠããã€ã³ãã©ã¹ãã©ã¯ãã£ã¹ããŒã¹ã§éãã§ãã人ã
ã®ããã«ãããã2ã€ã®ãªãã·ã§ã³ãå
¬éãããã£ãã®ã§ãã
ç§ã¯ãã®ç¹ã§åœ¹ç«ã€ãããããªãäœãã«åºããããŸããïŒ https ïŒ
ããã¯dockerv1.10.0ããå©çšã§ããããã«èŠããŸãããä»ãŸã§æ°ã¥ããŠããŸããã§ããã ãã®æç¹ã§ç§ãåŸåããŠãã解決çã¯ã httpsïŒ//www.vaultproject.io/ã䜿çšããŠã·ãŒã¯ã¬ãããä¿åããã³ååŸãã/ secretsãŸãã¯ãã®æ§è³ªã®ãã®ã«ããŠã³ããããtmpfsãã¡ã€ã«ã·ã¹ãã ã®ã³ã³ãããŒå ã«ä¿åããããšã ãšæããŸãã ã ã³ã³ããã§IAMããŒã«ãæå¹ã«ããæ°ããECSæ©èœã«ãããVaultã®AWS EC2èªèšŒã䜿çšããŠãã·ãŒã¯ã¬ããèªäœãžã®æ¿èªãä¿è·ã§ããã¯ãã§ãã ïŒãã©ãããã©ãŒã ã«äŸåããªãå Žåã¯ãã¢ããªIDèªèšŒã䜿çšããåŸåããããããããŸãããïŒ
ãããã«ãããç§ã«ãšã£ãŠæ¬ ããŠããã®ã¯ãç§å¯ãååŸããããå®å šã«çœ®ãå Žæã§ããã tmpfsãªãã·ã§ã³ã¯ç§ã«ã¯è¯ããªãã·ã§ã³ã®ããã§ãã å¯äžæ¬ ããŠããã®ã¯ãECSããŸã ãã®ãã©ã¡ãŒã¿ãŒããµããŒãããŠããªãããã«èŠããããšã§ãããã®ãããä»æ¥ãããéä¿¡ããŸããïŒ https ïŒ
å šäœãšããŠãããã¯ããªãå æ¬çãªè§£æ±ºçã®ããã«æããŸãã
@CameronGo ããã€ã³ã¿ãããããšãã ç§ãæ£ããç解ããŠããã°ãããã¯ãã«ãã§ããŸã䜿çšããããšã¯ã§ããŸãããããããšãã§ããŸããïŒ
@NikolausDemmelç³ãèš³ãããŸããããããªãã¯æ£ããã§ãã ããã¯å®è¡æã®ç§å¯ã®è§£æ±ºçã«ãããããã«ãæéã§ã¯ãããŸããã ç§ãã¡ã®ç°å¢ã§ã¯ããã«ãã¿ã€ã ã·ãŒã¯ã¬ããã¯Gitããã³ãŒããååŸããããã«ã®ã¿äœ¿çšãããŸãã JenkinsããããåŠçããGitã¢ã¯ã»ã¹ã®ã¯ã¬ãã³ã·ã£ã«ãä¿åããŸãã åããœãªã¥ãŒã·ã§ã³ãããã«ãããã¹ãŠã®äººã®ããŒãºã«å¯Ÿå¿ããŠãããã©ããã¯ããããŸãããããã«ãã¿ã€ã ã·ãŒã¯ã¬ããã®ä»ã®ãŠãŒã¹ã±ãŒã¹ã«ã€ããŠã¯ããããŸããã
JenkinsããããåŠçããGitã¢ã¯ã»ã¹ã®ã¯ã¬ãã³ã·ã£ã«ãä¿åããŸãã
ããã¯dockerã§ã©ã®ããã«æ©èœããŸããïŒ ãŸãã¯ãã³ã³ããèªäœã®å
éšã«git clone
ããŸãããïŒ
ãã®åé¡ãå®å šã«èªãã åŸãèŠä»¶ã倧ããç°ãªãããã«ãæããšãå®è¡æãã®ã·ãŒã¯ã¬ããã«ã€ããŠå¥ã ã®åé¡ã«åå²ããããšã§ã倧ããªã¡ãªãããåŸããããšæããŸãã
ããªããç§ã®ããã§ãããªããä»äœããã¹ããã決ããããšããŠããã«æ¥ããªããFWIWç§ã決ãã解決çããäœãè¯ãããšãèµ·ãããŸã§èª¬æããŸãã
ã©ã³ã¿ã€ã ã·ãŒã¯ã¬ããã«ã€ããŠã¯ã httpïŒ//kubernetes.io/docs/user-guide/secrets/ã䜿çšããããšã«ããŸãã
ãã«ãæã®ç§å¯ã«ã€ããŠ-ãã©ã€ããŒãã³ãŒããé åžãã以å€ã«ãä»ã®ãã«ãæã®ç§å¯ã®ãŠãŒã¹ã±ãŒã¹ã¯èããããŸããã ãã®æç¹ã§ããã¹ãåŽã§ãç§å¯ãã®äœããå®è¡ããçæãããpackage / jar / Wheel / repo / etcãè¿œå ãããããè¯ã解決çã¯ãããŸããã ç»åã«ã äžéšã®ã³ã¡ã³ãã§ç€ºåãããŠããããã«ããã¹ãåŽã§ããã±ãŒãžãçæãã1ã€ã®LOCãä¿åããããšã¯ãsshããŒã®å ¬éããããã·ãµãŒããŒã®å®è¡ã®è€éããå±éºã«ããã䟡å€ã¯ãããŸããã
ãã¶ããdocker runãã©ã°ãšåæ§ã«ãdockerãã«ãã«ã-vããã©ã°ãè¿œå ãããšããŸãããã§ããããïŒ ãã¹ããšã€ã¡ãŒãžã®éã§äžæçã«ãã£ã¬ã¯ããªãå ±æããŸããããã£ãã·ã¥ãŸãã¯çæãããã€ã¡ãŒãžã§ç©ºã«èŠããããšã確èªããŸãã
ç§ã¯çŸåšã Vaultã䜿çšãããœãªã¥ãŒã·ã§ã³ã«åãçµãã§ããŸãïŒ
åãã³ãã³ãå ã§ã·ãŒã¯ã¬ãããåé€ããããšãéèŠã§ãããã®ãããdockerãç¹å®ã®ã¬ã€ã€ãŒããã£ãã·ã¥ãããšãã«ãæ®ãããªããªããŸãã ïŒãã¡ãããããã¯ãã«ãã¿ã€ã ã·ãŒã¯ã¬ããã«ã®ã¿é©çšãããŸãïŒ
ããã¯ãŸã äœæããŠããŸããããäœæ¥äžã§ãã
@kozikowã®ã³ã¡ã³ãã«ããããé¢é£ããŠã
ç¹ã«ãã«ãæã®ç§å¯ã§ã¯ãªããããããŸããããRUN curlã³ãã³ããä»ããŠãã«ãæžã¿ã®ã¢ãŒãã£ãã¡ã¯ããããŠã³ããŒãã§ããããã«ããããã«ãDockerfileã§ãã«ãæã«ãã¹ã¯ãŒããïŒä¿è·ããïŒãŠãŒã¹ã±ãŒã¹ãå¿ èŠã§ãã ãã«ãæã®ããŠã³ããŒãã§ã¯ãã¢ãŒãã£ãã¡ã¯ããååŸããããã«èªèšŒãããŠãŒã¶ãŒè³æ Œæ å ±ãå¿ èŠã§ãããã®ãããçŸåšãDockerfileã§ç°å¢å€æ°ãšããŠãã¹ã¯ãŒããæž¡ããŸãïŒãŸã éçºäžã§ãïŒã OpenShiftã䜿çšããŠããããããã«ãã¯ããã¯ã°ã©ãŠã³ãã§èªåçã«è¡ãããDockerfileã®ç°å¢å€æ°ã¯ãä»ã®docker buildã³ãã³ããšåæ§ã«ããã«ãäžã«ãã°ã«åºåãããŸãã ããã«ãããéçºè ãå«ãããã°ã«ã¢ã¯ã»ã¹ã§ãããã¹ãŠã®äººã«ãã¹ã¯ãŒãã衚瀺ãããŸãã Dockerã®ãã«ãäžã«äœ¿çšã§ããããã«ãã¹ã¯ãŒããéä¿¡ããæ¹æ³ãå¿ æ»ã«èããŠããŸããããã¹ã¯ãŒãããã°ã«åºåãããªãããã©ã®ã¬ã€ã€ãŒã«ãååšããªããªããŸãã
ãŸãã @ wpalmerããã®ã¹ã¬ãããå®è¡æãšãã«ãæã«åå²ããããšã«ã€ããŠèšã£ãããšãã2çªç®ã«
誰ããæãã€ããïŒå®è¡æã®ïŒç§å¯ã®ã¡ã«ããºã ã«ã€ããŠãããã€ãã®ãã¹ããå®çŸ©ããããšã¯äŸ¡å€ããããšæããŸãã ãã®ã¹ã¬ããã«ã¯ãéåžžã«åŒ±ãã»ãã¥ãªãã£ãæå±ããŠãã人ãããããããããã§ãã
ãŸããç§ã¯æ¬¡ã®ããšãææ¡ããŸãã
ãããã®ããããã«éåããäžèšã®è§£æ±ºçã«ã¯åé¡ããããŸãã
ã·ãŒã¯ã¬ãããåŸãã¹ãåäœã®å®çŸ©ã«åæã§ããã°ãå°ãªããšãããã¯ç®çã«åããªãç¡éã®è§£æ±ºçãåãé€ãã§ãããã
@gtmtechçŽ æŽãããææ¡:)
ããã»ã¹1ãéå§ãããåŸãã³ã³ãããŒããã¢ã¯ã»ã¹å¯èœãªãã¡ã€ã«ïŒããªã¥ãŒã ã«ããŠã³ãããããã¡ã€ã«ãå«ãïŒå ã§ã·ãŒã¯ã¬ããã䜿çšããããšã¯ã§ããŸããã
ç§ã¯ããã«åæãããã©ããããããŸããã ã³ã³ããããïŒçæ³çã«ã¯ã¡ã¢ãªå ã§ïŒã¢ã¯ã»ã¹ããå¿ èŠãããããšã«åæããŸãããã¢ããªã±ãŒã·ã§ã³ããèµ·åãããã®ã«æéããããããã®äžãããã¡ã€ã«ãåé€ãããªãå Žåãããã€ããããŸãã ã³ã³ããã®å®è¡äžïŒåæ¢æã«åé€ãããïŒã®ã¡ã¢ãªå ã®äœãã¯ãããå°ãè¯ãã¢ãããŒãã ãšæããŸãã
å®è¡æèŠä»¶ã®ãªã¹ãã«è¿œå ããŸãã
ããšãã°ãVaultã¯AppRoleããã¯ãšã³ãã§æ¿èªãæäŸããŸãããã³ã³ãããèªåèªèº«ãèå¥ããæ¹æ³ã«é¢ããŠã¯ãŸããã
Nick Sullivanã¯ãæ°é±éåã«Clouflareã®PALãããžã§ã¯ãã«ã€ããŠ
ã¢ããªã±ãŒã·ã§ã³ã®èŠ³ç¹ãããããã«å¯ŸåŠããæ¹æ³ã¯3ã€ãããŸãã
Dockerã¯ãæ±çšæ§ãšããŸããŸãªãŠãŒã¹ã±ãŒã¹ã®ãµããŒãããã¹ãŠã§ãã ããã«åºã¥ããŠã1ããš2.ã¯ãã©ã¡ããã·ã¹ãã ã«ãã¯ã©ã ããæ®ããŠãããšããäºå®ã«ãããããããã¢ããªã±ãŒã·ã§ã³ã®èŠ³ç¹ããæãé åçã§ãã
ç§ã確ãã«äœ¿çšããäžè¬çãªã¢ãããŒãã®1ã€ã¯ããšã³ããªãã€ã³ãã¹ã¯ãªãããä»ããŠã·ãŒã¯ã¬ãããæ¿å ¥ããããšã§ãïŒããšãã°ãAWSã§credstashããã¬ãŒã³KMSãªã©ã®ããŒã«ã䜿çšããIAMããŒã«ãšçµã¿åãããïŒã ãã®ç¹ã§ãå®éã«ã¯ãšã³ããªãã€ã³ãã¹ã¯ãªããã§äžèšã®ïŒ3ãå®è¡ããïŒ1ïŒç°å¢å€æ°ãèšå®ïŒãŸãã¯ïŒ2ïŒãã¡ã€ã«ãžã®æžã蟌ã¿ïŒãå®è¡ããŸãã ãã®ã¢ãããŒãã¯åçã§ãããïŒ1ïŒç°å¢å€æ°ïŒã®å ŽåãDockerãã°ãŸãã¯Dockeræ€æ»ã§è³æ Œæ å ±ãå ¬éããŸããã
ãšã³ããªãã€ã³ãã¢ãããŒãã®è¯ããšããã¯ãã·ãŒã¯ã¬ãã管çã®æžå¿µãã¢ããªã±ãŒã·ã§ã³ããåé¢ããŠããããšã§ãã
ããã¯ãDockerãç¬èªã®ãšã³ããªãã€ã³ãã¹ã¯ãªãããããŒã«ããå¿ èŠããªãããã«æ©èœãè¿œå ã§ããé åã§ãã Dockerã¯ãã©ã°ã€ã³ã倧奜ãã§ãã³ã³ãããŒã®ã©ã€ããµã€ã¯ã«ãžã®ããã¯ãæäŸãããã·ãŒã¯ã¬ããããããã€ããŒãã©ã°ã€ã³ããµããŒãã§ããŸãããã®ãã©ã°ã€ã³ã¯ãåºæ¬çã«æåã®ãšã³ããªãã€ã³ãã¹ã¯ãªããã®æ©èœãå®è¡ããïŒå éšç°å¢å€æ°ãŸãã¯ãã¡ã€ã«ãä»ããŠïŒã³ã³ãããŒã«ã·ãŒã¯ã¬ãããæ¿å ¥ããŸãã ãããã£ãŠãHashicorp Vaultã·ãŒã¯ã¬ãããããã€ããŒãAWS KMSã·ãŒã¯ã¬ãããããã€ããŒãªã©ã䜿çšã§ããŸããDockerã¯ãRSAæå·åïŒããžã¿ã«èšŒææžãä»ããŠïŒã䜿çšããç¬èªã®ãããã€ããŒã䜿çšã§ããŸãã ãã®å šäœã®æŠå¿µã¯ãã³ã³ãããã¡ã€ã«ã·ã¹ãã ã«ã·ãŒã¯ã¬ããã衚瀺ããKubernetesã®ã·ãŒã¯ã¬ããã®æŠå¿µãšå€§ãŸãã«äŒŒãŠããŸãã
ãã¡ãããã·ãŒã¯ã¬ãããããã€ããŒãžã®ã¢ã¯ã»ã¹ãã©ã®ããã«æ¿èªãããã¯è€éã§ããããã¯ãä»æ¥çŽé¢ããŠããåé¡ã§ãã Hashicorpã䜿çšãããšãèªèšŒçšã«1åéã/æéå¶éã®ããããŒã¯ã³ãçºè¡ããŠæž¡ãããšãã§ããŸããAWSã§ã¯ãIAMããŒã«ã§ãããåè¿°ã®Docker RSAæå·åã¢ãããŒãã§ã¯ãDockerEngineå ¬é蚌ææžã䜿çšããŠæå·åãããã·ãŒã¯ã¬ãããæž¡ãã ãã§ãã
ãã®ã¹ã¬ããã¯çŽ æŽãããã§ãã ãã®ãããªã¹ã¬ãããå¢ããŠãã³ãã¥ããã£ã®äººã ãããããåéã®äººã ãèªåã®çµéšãèãã解決çãå ±æã§ããããã«ãªãããšãé¡ã£ãŠããŸãã
ãã·ãŒã¯ã¬ãããŒããã®åé¡ã¯æ³šæãå¿ èŠã§ãã ãã«ãæãŸãã¯å®è¡æïŒ ã©ã¡ãã«ãé·æãšçæããããæãããªã»ãã¥ãªãã£å¯Ÿçãšæ¬ é¥ããããŸãïŒãããŠãããã³ã°ãšåé¿çããããŸãïŒïŒã
ããã¯èšã£ãŠããç§ã¯ãã¹/ããŒã®ç®¡çãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã«ã©ã®ããã«åœ±é¿ãããã«ã€ããŠå€ãã®ããšãèããŠããŸããã
ä»åŸæ°ãæã§åãçµãäºå®ã®ããšã¯ãããŒãšå€ã®ãã¢ãä»ããŠå ±æã®ã°ããŒãã«æ§æãããã³ã°ãµãŒãã¹ãæ§ç¯ããConsulã«ãã£ãŠé åžãããç°å¢å€æ°ãšããŠå©çšã§ããããã«ããããšã§ãïŒãŸãã¯ãç°å¢å€æ°ã®äœ¿çšããµããŒããããŠããªãå Žåã¯æ³šå ¥ãããŸãïŒã ããã¯ãå®å šã§ãªãå€ã®ã¿ããµããŒãããŸãã å®å šã®ããã«ãVaultã«ç§»è¡ããããŒã¿ããŒã¹ããã®ä»ã®äŸåé¢ä¿ã®ããã«ããããã³ã°ãµãŒãã¹ã®ããã«æ±ããŸãã
ã³ãŒããæ§æãããã³ã·ãŒã¯ã¬ããã¯ããããã³ã°ãµãŒãã¹ãä»ããŠæäŸãããŸãã ãã®å ŽåãStashãConsulãVaultã䜿çšããŸãã äŸåé¢ä¿ãã¢ããããŠããéããå¿ èŠã«å¿ããŠæ§æãšã·ãŒã¯ã¬ããããã«ããæ©èœãã¢ããããŸãã
ç§ã¯ãããåºæº¶äœãšããŠã©ãã«ãèŠãããšããªãã®ã§ãããã«æçš¿ããŸãã ãã ãããã®ã¹ã¬ããã®ç®çã«æ»ãããã«ãDocker /ã·ãŒã¯ã¬ããã®åé¡ãåé¿ããããã«å®éšããã¢ãããŒãã®1ã€ã§ãã å®è¡ãããã¬ãŒã ã¯ãŒã¯ããã©ãããã©ãŒã ã«äŸåããã®ã§ã¯ãªããããããã€ãã£ãã«ãµããŒãããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸãã
ãã«ãæã®ã·ãŒã¯ã¬ããã«é¢ããŠã Rockerã®MOUNT
ãã£ã¬ã¯ãã£ãã¯ããã«ãæã«_only_ååšããäžæçãªãã£ã¬ã¯ããªãšãã¡ã€ã«ãäœæããã®ã«åœ¹ç«ã€ããšã蚌æãããŠããŸãã ãããã®ãã³ãã¬ãŒãæ©èœã®ããã€ãããã®ç¶æ³ã§åœ¹ç«ã€ãããããŸããããç§ã¯ãŸã ããããå®å
šã«äœ¿çšããŠããŸããã
ãã®æ©èœãDockerã³ã¢ã®Builderãã©ã°ã€ã³ãšããŠå®è£ ãããããšãæãã§ããŸãïŒããã³Rockerfilesãæã€ä»ã®äŸ¿å©ãªæ©èœã®ããã€ãïŒïŒ
çŸåšOPã«ãã4ã€ã®ææ¡ã¯ãã¹ãŠãã·ãŒã¯ã¬ããã¹ãã¬ãŒãžã«é¢ãããã®ã ãšæã
Dockerã¯ã·ãŒã¯ã¬ãã/ãã¹ã¯ãŒãã_dockerã€ã³ã¹ã¿ã³ã¹_ã«æž¡ãã®ã容æã«ããå¿ èŠããããšæããŸããããããã®ã·ãŒã¯ã¬ããã®ä¿å/管çã¯dockerã®ç¯å²å€ã§ãïŒãããŠããããã¹ãã§ãïŒã
_ç§å¯ãæž¡ã_ãšãããããéåžžãã°ã«èšé²ãããããšãé€ããŠãå®è¡ãã©ã¡ãŒã¿ãŒã¯ã»ãŒå®ç§ã ãšæããŸãã ã ããç§ã¯ãããéå¹³æãã©ã¡ãŒã¿æ©èœã«çµã蟌ã¿
_ã·ãŒã¯ã¬ããã®ç®¡çæ¹æ³_ã«ã€ããŠã¯ãèªäœã®bashã¹ã¯ãªããããã Kubernetesãªã©ã®ãœãããŠã§ã¢ã«ããçµ±åãŸã§ããŠãŒã¶ãŒãæãããšã¯äœã§ãèšããŸãã
@ agilgur5ãå
ã«è¿°ã¹ãããã«ãããã«ãŒããŠã³ãã®ããã«MOUNTãå®è£
ããã ãã®äœãåé¡ã«ãªã£ãŠããŸããïŒ ãã®éåžžã«ç°¡åãªãŠãŒã¹ã±ãŒã¹ãæºããããã«ãããŒã ãdocker build
ã³ãã³ããå¹æçã«ãã©ãŒã¯ããªããã°ãªããªãã£ãã»ã©ããã®è°è«ãé·ãç¶ãããšã¯ä¿¡ããããŸããã ããã¯ã¹ã«å¥ã®HTTPãµãŒããŒãå¿
èŠã§ããïŒ æ¥å»ã
ç§ã¯ãã®ãµããžã§ããã®åšãã§ãšãŠãå€ãã®æéãéãããŸãã...
ä»ã®ãšããããã«ããã§ãŒãºã§ã·ãŒã¯ã¬ããã管çããããã«ç§ãèŠã€ããæåã®æ¹æ³ã¯ã2ã€ã®ã¹ãããå ã§ãã«ãããããšã§ããã€ãŸãã2ã€ã®Dockerãã¡ã€ã«ã§ãã ããã«è¯ãäŸããããŸãã
[Habitus]ïŒhttp://www.habitus.io/ïŒã¯å¥ã®ãªãã·ã§ã³ã®ããã§ãããç§ã®å Žåãäž»ã«CIãµãŒããŒãšãŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ãŒã§ãã«ãããã»ã¹ãç¶æããããšããçç±ã§ãå¥ã®ããŒã«ãè¿œå ããããããŸãããã·ã³ãã«/åãã
ãããŠãdocker-in-dockerïŒdindïŒã®æ¹æ³ã¯ã©ãã§ããïŒ
ããã§ã¯ãäžèšã§èª¬æããããã«dindã䜿çšããŠãã«ããã2ã€ã®ã¹ãããã®äŸã瀺ããŸãïŒ https ïŒ
ã³ã¡ã³ãããŠãã ãã...
é¢çœãã OpenShiftãã©ã®ããã«ãã«ãããããæãåºãããŠãããŸãã
ã³ãã³ãã©ã€ã³ã§ãã¹ã¯ãŒããæž¡ããŠããããã«èŠããŸãã ãããåé¿ããæ¹æ³ã¯ãããŸããïŒ
ããã«ã¯ããã«ãæã®ã·ãŒã¯ã¬ããã«é¢ããé²è¡äžã®PRãããããšã«æ³šæããŠãã ããã https://github.com/docker/docker/pull/28079 ïŒãµãŒãã¹ã®ã©ã³ã¿ã€ã ã·ãŒã¯ã¬ããã¯docker 1.13ã«ãããŸããhttpsïŒ//github.com/docker/docker/pull/27794ãåç §ããŠãã ããïŒ
@thaJeztah ïŒ
ïŒ28079ã«ã€ããŠãéå»2幎éã«ãã®ããŒãã«é¢ããå€ãã®PRã倱æããã®ãèŠããšããç§ã¯å°ãæ²èŠ³çã§ã...
äŸåé¢ä¿ãšããŠçŸ€ããæã¡ãããããŸããã ç§ã®é¡§å®¢ã®äžéšã¯ãå¥ã®ã¯ã©ã¹ã¿ãŒãªãŒã±ã¹ãã¬ãŒã¿ãŒã䜿çšããŠããŸãã
@cassiussa ïŒ
ã©ãããæå³ãããããŸãããïŒ
1 /ãã¹ã¯ãŒãã¯æçµçãªã€ã¡ãŒãžã§ã¯ãªããã³ã³ãããã«ããŒãã«æž¡ãããŸããã ãã®ãã«ããŒã¯ãDockerãã«ããå®è¡ããDockerfile.realeaseã«åºã¥ããŠã€ã¡ãŒãžãçæããŸãã ãã®æçµçãªç»åã®å±¥æŽã«ä¿åãããŠããç§å¯ã¯ãããŸããã
2 /ãã¹ã¯ãŒããã³ãã³ãã©ã€ã³ã«æž¡ããããªãå Žåã¯ãdocker-composeïŒäŸïŒãèªç±ã«äœ¿çšããŠãã ãã
@BenoitNorrinå°æ¥çã«ã¯é矀ãã«æ¡å€§ããããããããªããšæããŸããã @ diogomonicaã¯ããã«ã€ããŠãã£ãšç¥ã£ãŠãããããããŸãã
ããã®ããã«èãããŸãïŒ
ãããã³ã°ã¹ãã¢ã¯Swarmã§ãããLinuxå°çšã§ãããããããã¯çŸåšSwarmã¢ãŒãå°çšã§ãã ããã¯ãWindowsãµããŒããããŸããŸãªãããã³ã°ã¹ãã¢ãªã©ã®æœåšçãªæ¹åã䌎ããDockerã§ã®å°æ¥ã®ã·ãŒã¯ã¬ãããµããŒãã®åºç€ã§ãã
ãããããã«ãŒãšåãããã«å®è£
ãããŠããã°çŽ æŽãããã§ãããã
ã·ã³ãã«ã§ãããšã³ã¿ãŒãã©ã€ãºãã§ããå¿
èŠã¯ãããŸããã
2016幎11æ29æ¥ç«ææ¥ã15ïŒ53 Michael Warkentinã notifications @ github.com
æžããŸããïŒ
ããã®ããã«èãããŸãïŒ
ããã¯çŸåšããããã³ã°ã¹ãã¢ãSwarmã§ããã
ããã¯Linuxå°çšã§ãã ããã¯ãå°æ¥ã®ç§å¯ã®ãµããŒãã®åºç€ã§ã
WindowsãµããŒããªã©ã®æœåšçãªæ¹åã䌎ãDockerãç°ãªã
ãããã³ã°ã¹ãã¢ãªã©â
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/docker/issues/13490#issuecomment-263608915 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AAZk5vlLwsBHHTTbUS_vvx-qTuwnkp6Oks5rDEpjgaJpZM4Eq021
ã
解決çã¯ã docker-compose
ãã¡ã€ã«ããæž¡ãããæ
å ±ã®äžéšãæå·åããããšã ãšæããŸãã
ããšãã°ã docker inspect
ãå®è¡ãããšãæå·åãããæ
å ±ã_encrypted_ãšããŠè¡šç€º/ããŒã¯ãããŸãã 次ã«ã docker inspect --encryption-key some_key_file
ã¯ãæå·åãããŠããªããã¹ãŠã®æå·åãããæ
å ±ã衚瀺ããŸãã
äžæ¹ãã³ã³ããå ã§ã¯ãã¢ããªã¯ã䜿çšããããã«ãã®æå·åãããæ å ±ã«ã¢ã¯ã»ã¹ããŠåŸ©å·åããããã®ããŸããŸãªã¡ã«ããºã ãå®è£ ã§ããå¿ èŠããããŸãã
æå·åã¯_éµã ãšæããŸã_ :)
ç®çã¯ãç§ã®ïŒæ¬åœã«ãæ¬åœã«ãæ¬åœã«äžè¬çãªïŒãŠãŒã¹ã±ãŒã¹ãæ§ç¯ããããšã§ã
èªèšŒãå¿
èŠãšããgitãµãŒããŒããã®ãœãããŠã§ã¢ãããžã§ã¯ã
ãããžã§ã¯ããšãã®äŸåé¢ä¿ã ããã«ãŒã¯ããŠã³ããèš±å¯ããããšã§ãããéä»ãã«ããŸãã
ãã«ãäžã®ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªïŒãã®å Žåã¯SSHãšãŒãžã§ã³ããœã±ããïŒ
2017幎1æ3æ¥ç«ææ¥ã04ïŒ14 Hisaã notifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
解決çã¯ãæž¡ãããæ å ±ã®äžéšãæå·åããããšã ãšæããŸã
docker-composeãã¡ã€ã«ãããããšãã°ãdocker inspectãå®è¡ãããšãæå·åãããæ å ±ã¯æ¬¡ã®ããã«ãªããŸãã
æå·åããããã®ãšããŠè¡šç€º/ããŒã¯ã
some_key_fileã¯ãæå·åãããŠããªããã¹ãŠã®æå·åãããæ å ±ã衚瀺ããŸããäžæ¹ãã³ã³ããå ã§ã¯ã¢ããªãå®è£ ã§ããå¿ èŠããããŸã
ãã®æå·åãããæ å ±ã«ã¢ã¯ã»ã¹ããŠåŸ©å·åãã䜿çšããããã®ããŸããŸãªã¡ã«ããºã ãæå·åãéµã ãšæã
â
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/docker/issues/13490#issuecomment-270049742 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AAZk5qEphZo5SR9vOWVL5dck50EPadpVks5rOcsUgaJpZM4Eq021
ã
èšåãããŠããªãã®ã§ãAWS ECSã§ã®ã·ãŒã¯ã¬ããã®åŠçã«é¢ããå¥ã®è¯ãèšäºããããŸãïŒ //aws.amazon.com/blogs/security/how-to-manage-secrets-for-amazon-ec2-container- service-based-applications-by-using-amazon-s3-and-docker /
Docker1.13ã«æ°ãããdockersecretãã³ãã³ãããããŸãã ãã®åé¡ã¯ããã®æ©èœã®ããã¥ã¡ã³ããããã§èª¬æãããŠãŒã¹ã±ãŒã¹ã«é©ããŠããå Žåã«è§£æ±ºã§ããã¯ãã§ãã
docker secretã³ãã³ãã¯ãçŸåšDocker SwarmïŒã€ãŸããdocker servicesïŒã«ã®ã¿é©çšãããããã«èŠãããããçŸåšãæ±çšDockerã³ã³ãããŒã«ã¯å®è¡ã§ããŸããã
ãŸãã docker secret
ã¯å®è¡æã·ãŒã¯ã¬ããã®ã¿ã管çãããã«ãæã·ãŒã¯ã¬ããã¯ç®¡çããŸããã
ããã 補å管çããŒã ã®èª°ããããŸã§èããããšã®ãªããããªãã®ã§ã
èªèšŒãããŠããªããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ä»¥å€ã®ãã®ãååŸããããŠãŒã¹ã±ãŒã¹
Dockerã³ã³ããããŸãã¯Golang以å€ã®èšèªã§æ§ç¯ãããŠããŸãã
äŸåé¢ä¿ã¯ã³ããŒãããŠè²Œãä»ããããŸããç³ãèš³ãããŸãããããããŒãžã§ã³ç®¡çããããŠGitãªããžããªã«ä¿åãããŸãã
人ã
ãã©ãã»ã©ä¿¡ããããªãã»ã©éæã«ãªãã®ãç解ã§ããŸããã ããã ã
ç§ãèããããšãã§ãã説æã¯ã補å管çããŒã ã¯ããã§ã¯ãªããšããããšã§ã
éæ¥å»ãšè£œåã䜿çšããããšããããŸããã ç§ã¯ãããããèŠãŸã
çµç¹ãåºã¥ããŠéçšãããšãã«ç¹åŸŽãçŸãã
jira /ã¢ãžã£ã€ã«ã¹ãã«ã
ç§ã¯2019幎ãŸã§ããŸãã¯èª°ãããã®ææå³ãèŠããšãã¯ãã€ã§ãããã«ãŒã䜿ãç¶ããŸãã
2017幎1æ22æ¥ã23ïŒ47 Shane StClairã notifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
ãŸããDockerã·ãŒã¯ã¬ããã¯å®è¡æã·ãŒã¯ã¬ããã®ã¿ã管çãããã«ãæã·ãŒã¯ã¬ããã¯ç®¡çããŸããã
â
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/docker/issues/13490#issuecomment-274370450 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AAZk5vJVJe4OeypWd1Cwqmh8Gzyn8P-mks5rU-qqgaJpZM4Eq021
ã
ç§ã¯ãã®æåŸã®ã³ã¡ã³ããåãæ»ããŸããããããªãããç§ã¯ãã³ãããŠããŸãã ãã ããã欲æ±äžæº
åçŽãªãšããžã±ãŒã¹ã¯ããã°ãã°äœããæŒãä»ããæ©äŒã®ããã«èŠããŸã
é äºã®ããã«ããŸãã¯åã«ã§ã¯ãªããæ¬åœã«éå°ã«èšèšããããã®ãäœæãã
ãã«ãæã®ããŠã³ããšåããããç°¡åãªãã®ãå®è£
ããŸãã
2017幎1æ23æ¥æææ¥ã 09 ïŒ admin @ binarytemple.co.ukã¯æ¬¡ã®ããã«æžããŠããŸãã
ããã 補å管çããŒã ã®èª°ããããŸã§èããããšã®ãªããããªãã®ã§ã
èªèšŒãããŠããªããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ä»¥å€ã®ãã®ãååŸããããŠãŒã¹ã±ãŒã¹
Dockerã³ã³ããããŸãã¯Golang以å€ã®èšèªã§æ§ç¯ãããŠããŸãã
äŸåé¢ä¿ã¯ã³ããŒãããŠè²Œãä»ããããŸããç³ãèš³ãããŸãããããããŒãžã§ã³ç®¡çããããŠGitãªããžããªã«ä¿åãããŸãã人ã ãã©ãã»ã©ä¿¡ããããªãã»ã©éæã«ãªãã®ãç解ã§ããŸããã ããã ã
ç§ãèããããšãã§ãã説æã¯ã補å管çããŒã ã¯ããã§ã¯ãªããšããããšã§ã
éæ¥å»ãšè£œåã䜿çšããããšããããŸããã ç§ã¯ãããããèŠãŸã
çµç¹ãåºã¥ããŠéçšãããšãã«ç¹åŸŽãçŸãã
jira /ã¢ãžã£ã€ã«ã¹ãã«ã2019幎ãŸã§ããŸãã¯èª°ããæå³ãç解ãããã³ã«ããã«ãŒã䜿ãç¶ããŸã
ããããã2017幎1æ22æ¥ã23ïŒ47 Shane StClairã notifications @ github.com
æžããŸããïŒãŸããDockerã·ãŒã¯ã¬ããã¯å®è¡æã·ãŒã¯ã¬ããã®ã¿ã管çãããã«ãæã·ãŒã¯ã¬ããã¯ç®¡çããŸããã
â
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/docker/issues/13490#issuecomment-274370450 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AAZk5vJVJe4OeypWd1Cwqmh8Gzyn8P-mks5rU-qqgaJpZM4Eq021
ã
@binarytemple誰ããä»ããã¹ãŠã®æ©èœãæãã§ããŸãã æºåãã§ããŠããªãå Žåã¯ãæºåãã§ããŠããŸããã æ°æ©èœã®ç¯å²ãå¶éããããšã¯ééããªãæªãããšã§ã¯ãããŸãããç¯å²ãå¶éãããŠããŠããåžžã«æ¹åã®äœå°ãããããã§ãã
誰ããæ©èœãåãå ¥ããããšã«æ¬åœã«å€¢äžã«ãªã£ãŠããå Žåã¯ããã®ããã®äœæ¥ã«ã©ã®ããã«è²¢ç®ã§ãããã«ã€ããŠãã¡ã³ããã«çžè«ããå¿ èŠããããŸãã
secret
ã³ãã³ãããŠãŒã¶ãŒã®çŸ€ããå©ããã ãã§ãããšããç¹ã§@mixjaãšåãããšã¯ãããäžè¬çãªè§£æ±ºçã§ã¯ãªããšæããŸããïŒæ°žç¶ããªã¥ãŒã ãã¢ã¿ããããå Žåã®ããã«ïŒã ã·ãŒã¯ã¬ãããã©ã®ããã«ç®¡çãããïŒã·ãŒã¯ã¬ãããšã¯äœãã誰ãã·ãŒã¯ã¬ããã«ã¢ã¯ã»ã¹ã§ãããïŒã¯ã·ã¹ãã ã«å€§ããäŸåããããã©ãããã©ãŒã ããäœæããããã«ã©ã®ãããã®ææãŸãã¯OSSãçµã¿åããããã«ãã£ãŠç°ãªããŸãã Dockerããã©ãããã©ãŒã ã®æäŸã«ç§»è¡ããŠããã®ã§ãHashicorpãVaultãAtlasã«çµ±åããŠããã®ãšåãããã«ãæåã®å®è£
ãã¹ãŠã©ãŒã ããŒã¹ã§ããããšã¯é©ãã§ã¯ãããŸãããããã¯çã«ããªã£ãŠããŸãã
å®éãç§å¯ãã©ã®ããã«æž¡ããããã¯ã docker run
ã¹ããŒã¹ã®å€ã«ãããŸãã AWSã¯ãããŒããã·ã§ã³ãšSDKãä»äž/æåŠããããŒã«ãšããªã·ãŒã䜿çšããŠãã®çš®ã®ããšãè¡ããŸãã Chefã¯ãæå·åãããããŒã¿ããã°ãšæå·åããããããŒãã¹ãã©ãããã䜿çšããŠèªèšŒãè¡ããŸãã K8Sã«ã¯ã 1.13ã§ãªãªãŒã¹ãããã°ããã®
ãããã®å®è£
ã¯2ã€ã®é£å¶ã«åé¡ãããããã§ãã
1ïŒããã©ãããã©ãŒã ããæäŸããããªã¥ãŒã ããŠã³ããŸãã¯ïŒchef / docker secret / k8sïŒãä»ããŠã·ãŒã¯ã¬ãããæž¡ããŸã
2ïŒã¯ã¬ãã³ã·ã£ã«ãæž¡ããŠå€éšãµãŒãã¹ãšéä¿¡ããèµ·åæã«ååŸããŸãïŒiam / credstash / etcïŒ
ç§ã¯2çªç®ã®ãªãã·ã§ã³ã®ç·ã«æ²¿ã£ãŠãã£ãšäœããèŠãããšæã£ãŠãããšæããŸãã æåã®ãªãã·ã§ã³ã§ã¯ãé¢å¿ã®åé¢ãååã§ã¯ãªããšæããŸãïŒèµ·åãè¡ãããšã§ãã¹ãŠã®ããŒã«ã¢ã¯ã»ã¹ã§ããŸãïŒããããã¯å¥œã¿ã§ãããã·ã¹ãã æ§ç¯ã®ä»ã®ãã¹ãŠãšåæ§ã«ã誰ãããããç°ãªãæ¹æ³ã§è¡ãã®ã奜ãã§ãã
ãã®æåã®ã¹ããããdockerã«ãã£ãŠè¡ãããããšããå§ãããŸãããŸãã docker run
ããäžè¬çãªã¡ã«ããºã ãïŒãã£ã³ãïŒ2ããµããŒãããããã«ïŒããããåºãŠããããšãé¡ã£ãŠããŸããæåã®ä»»åã¯éæãããŠããããŸã éããã¹ãã§ã¯ãããŸããã
ãæ°ã«å
¥ãïŒ
æ¬åœã«ã·ã³ãã«ã§ãããªããéåžžã«å¹æçãªãã¶ã€ã³
@ bacoboy ã @ mixja-åäžããŒãã®çŸ€ããšåäžã³ã³ãããµãŒãã¹ã¯ããã»ã©æªããããŸãã
docker swarm initãdocker service create Replica = 1
ç§ã«ãšã£ãŠãDockerSwarmãä»åŸã³ã³ãã/ãµãŒãã¹ãå®è¡ããããã®ããã©ã«ãã«ãªãããšã¯è«ççã§ãã
ãã®æ°ãã矀ãããŒã¹ã®ææ¡ã¯å®è¡æã®ç§å¯ã«
ãã«ãæã®ç§å¯ã¯éèŠã§ãããç§ãç¥ãéãããã®ææ¡ã¯ãããã«å¯ŸåŠããŠããŸããã
ãã«ãæã®ã·ãŒã¯ã¬ãããæ¿å
¥ããããã«ã docker build --squash
ã䜿çšããŠæ¬¡ã®ããšãå®å
šã«è¡ãããšãã§ããŸãã
COPY ssh_private_key_rsa /root/.ssh/id_rsa
RUN git pull ...
RUN rm -rf /root/.ssh/id_rsa
--squash
ãã©ã°ã¯ãDockerfileå
šäœã«å¯ŸããŠåäžã®ã¬ã€ã€ãŒãçæããŸããç§å¯ã®çè·¡ã¯ãããŸããã
--squash
ã¯ãå®éšçãªãã©ã°ãšããŠdocker-1.13ã§äœ¿çšã§ããŸãã
@hmalphettesããã¯ããã«ãéã§å ±æãããäžäœã¬ã€ã€ãŒã®å©ç¹ãèŠéãããšãæå³ããŸãã
ããã¯ééããªãã¹ã«ãã·ã¥ã®æå³ã§ã¯ãããŸããã ç§ã¯ãŸã ãã®ãããªç§å¯ãè¿œå ããããšã«éåžžã«æ³šæããŠããŸãã
@zoidbergwilläžäœã¬ã€ã€ãŒã¯åŒãç¶ãå ±æãããŸãã
@ cpuguy83ã«100ïŒ åæããŸãã ç§å¯ãå®ãããã«ãã«ãæéãã©ã°ã«äŸåããããšã¯ããªãå±éºã§ãã ãã«ãæéã®ææ¡PRããããŸããïŒhttps://github.com/docker/docker/pull/30637ïŒããå€ãã®ãã£ãŒãããã¯ãåŸãããã«ãªããŒã¹ã«åãçµã¿ãŸãã
@wpalmerèªååãããã€ã¡ãŒãžãã«ããããå ŽåãããŒã«ã¯ãã«ãæã®ã·ãŒã¯ã¬ãããååŸããæ¹æ³ãç¥ã£ãŠããå¿ èŠããããŸãã
ããšãã°ããã«ãæã®ã·ãŒã¯ã¬ãããã€ã¡ãŒãžã«ãã€ã¯ãããAnsibleæå·åããŒã«ãã«ä¿æãããã®ã€ã¡ãŒãžããå®è¡ãããŠããã³ã³ãããŒã«ãããŒã«ãã®ãã¹ã¯ãŒããä¿æããã©ã³ã¿ã€ã ã·ãŒã¯ã¬ãããžã®ã¢ã¯ã»ã¹ãèš±å¯ãããå ŽåããããŸãã
WDYTïŒ
ãã«ãæã®ã·ãŒã¯ã¬ãããšã©ã³ã¿ã€ã ã·ãŒã¯ã¬ãããæ··åãç¶ããã®ã¯ãªãã§ããïŒ dockerïŒãŸãã¯kubernetesãªã©ã®é¢é£ããŒã«ïŒãã©ã³ã¿ã€ã ã·ãŒã¯ã¬ãããæäŸããããã®åªããæ¹æ³ã¯ãã§ã«ãããããããŸãã æ¬åœã«æ¬ ããŠããã®ã¯ããã«ãæã®ç§å¯ã ãã§ãã ãããã®ã·ãŒã¯ã¬ããã¯å®è¡æã«äœ¿çšããããã€ã³ã¹ããŒã«æã«äœ¿çšãããŸããããã¯ãããšãã°å éšãªããžããªã§ããå¯èœæ§ããããŸãã ãã®ãããã¯ãšé¢é£ãããã¯ã§ç§ãèŠãïŒãããããã«å¯ŸããŠãã¢ããã€ã¹ãããïŒå¯äžã®æå¹ãªæ¹æ³ã¯ããã«ãæã«httpãµãŒããŒãã³ã³ãããŒã«å ¬éããããšã§ãã httpãµãŒããŒã®ã¢ãããŒãã¯ãå®éã«ãããã®ç§å¯ã«å°éããããã«ç©äºãéãã«è€éã«ããŸãã
+1ãã«ãã¿ã€ã ã·ãŒã¯ã¬ããïŒ=ã©ã³ã¿ã€ã ã·ãŒã¯ã¬ãã
ããŠããææããããã«ã å
éšãªããžããªããã€ã¯ããããšã¯æãŸãããããŸãã
ç»åãžã®ã¯ã¬ãã³ã·ã£ã«ã
ãªãããããšãŠãç解ãã«ããã®ã§ããïŒ
2017幎2æ16æ¥æšææ¥ã14ïŒ42 Paul van der Lindenã notifications @ github.com
æžããŸããïŒ
ãã«ãæã®ã·ãŒã¯ã¬ãããšã©ã³ã¿ã€ã ã·ãŒã¯ã¬ãããæ··åãç¶ããã®ã¯ãªãã§ããïŒ äž
dockerïŒãŸãã¯kubernetesãªã©ã®é¢é£ããŒã«ïŒã
ã©ã³ã¿ã€ã ã·ãŒã¯ã¬ãããæäŸããŸãã æ¬åœã«æ¬ ããŠããã®ã¯ãã«ãæéã ãã§ã
ç§å¯ã ãããã®ã·ãŒã¯ã¬ããã¯å®è¡æã«äœ¿çšãããŸããã
ã€ã³ã¹ããŒã«æéãããã¯ãããšãã°å éšãªããžããªã§ããå¯èœæ§ããããŸãã å¯äžã®
ãã®ãããã¯ãšé¢é£ãããã¯ã§èŠãäœæ¥æ¹æ³ïŒãã ããã¢ããã€ã¹ããããŸãïŒ
ããã«å¯ŸããŠïŒããã«ãæã«httpãµãŒããŒãã³ã³ããã«å ¬éããŠããŸãã
httpãµãŒããŒã®ã¢ãããŒãã§ã¯ãå®éã«ã¢ã¯ã»ã¹ããã®ãéåžžã«è€éã«ãªããŸãã
ãããã®ç§å¯ãâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/docker/issues/13490#issuecomment-280348116 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AAZk5h0Z2OGwApVnLNEFWKRdOfGxLOmRks5rdGBagaJpZM4Eq021
ã
@ pvanderlinden2ã€ã®ã¹ããããæ§ç¯ããŠãããè¡ãããšãã§ããŸãã
ããã«äŸããããŸãïŒ https ïŒ
åè¿°ã®ããã«ã @ timkaã¯ãã»ãã¥ãªãã£äžã®ãªã¹ã¯ããããããããã¯ã¬ãã³ã·ã£ã«ãã€ã¡ãŒãžã«çŒãä»ããããšã¯æãŸãããããŸããã ãã«ãæéã®ç§å¯ã®ææ¡ã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
@BenoitNorrinç§ã®ïŒããã³ä»ã®ïŒãŠãŒã¹ã±ãŒã¹ã§ãããã©ã®ããã«ãªãã
Dockerãã«ãããã»ã¹ãéå§ãããšãã€ã³ã¹ããŒã«ããå¿
èŠã®ããããã±ãŒãžã¯ãã§ã«ãã«ããããŠããŸãã ãã ããdockerãã«ãã¯ãããã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããå¿
èŠããããå
éšã®anacondaãªããžããªãpypiãµãŒããŒïŒpythonïŒã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸãã å Žæãšãã¹ã¯ãŒãã¯ãã¡ãããã©ã€ããŒãã§ãã
ïŒ30637ã¯å¥ã®è©Šã¿ã®ããã§ãããããŸãããã°ãããã¯Dockerã«ãªããŸãïŒ
@timkaã¡ãã»ãŒãžã®ååã¯ãã«ãæã®ç§å¯ã«ã€ããŠèšåããŠããããã§ãããåŸåã¯å®è¡æã®ç§å¯ã«ã€ããŠæ瀺çã«èª¬æããŠããŸãã å®è¡æã®ç§å¯ã¯åçŽã§ãã ãã«ãæã·ãŒã¯ã¬ããã®çŸåšã®ã解決çãã¯ãå®å
šã«å¥ã®ã¹ããããšããŠãã©ã³ã¿ã€ã ã·ãŒã¯ã¬ããã䜿çšããŠãã©ã€ããŒãããŒã¿ããã§ããããã³ã³ãããŒãäºåã«å®è¡ããããšã§ãã 次ã«ãéåžžã®docker build
ã³ãã³ããå®è¡ããåã«ããããããªãŒã«ããŒãžããŸãã
ãã«ãæã®ã·ãŒã¯ã¬ãããæšæºæ©èœã§ããå Žåã®ä»£æ¿æ段ã¯ãDockerfileå ã§ãããã®ã¹ããããå®è¡ããããšã§ãã
ç§ã®ããŒã«ã¯ãããã®ã¹ããããèªåçã«å®è¡ããæ¹æ³ãç¥ã£ãŠããŸããããããèªåã§ãã€ã¯ããå¿ èŠããããŸãããããã¯ããã®ãããªäžè¬çãªèŠæã«ã¯ããã°ãããŠããŸãã
åèãŸã§ã«ããã«ãæã®ã·ãŒã¯ã¬ããã®åé¡ã«å¯ŸåŠããããã«https://github.com/abourget/secrets-bridgeãäœæããŸããã
åŒæ°ãšããŠæž¡ãããšãã§ãã䜿ãæšãŠã®æ§æãäœæããŸãããã«ãããã»ã¹äžã«ããã¹ãã«æ¥ç¶ããŠã·ãŒã¯ã¬ãããååŸãããããã䜿çšããŠããããã¹ãããªããžã匷å¶çµäºã§ããŸãã build-argsãã©ããã«ä¿åãããŠããŠãããµãŒããŒã匷å¶çµäºãããç¬éã«ãããã¯åœ¹ã«ç«ããªããªããŸãã
ãµãŒããŒã¯ãTLSWebSocketéä¿¡ãä»ããŠãã³ããªã³ã°ãããSSHãšãŒãžã§ã³ã転éããµããŒãããŸãã Windowsã§ãåäœããŸãïŒ
ã¢ã¬ã¯ãµã³ãã«ãããªããããããšã¯éåžžã«åµé çã§çç·ŽããŠããŸãã ããã ã
ããããã¹ãŠã®ã¹ãããããã ãžã£ã³ãããããã«å¿
èŠãªããšã¯ç§ãæ²ãããããŸã
'dockerbuild'ã 'mount'ããµããŒãããå Žåãšåãããšãå®çŸããŸã
ãã¹ãŠãã«ã³ããŒããããšããç²ç®çãªäž»åŒµã§ã¯ãªããã³ãã³ã
容åšã
ç§ã¯ãdockerbuildããæŸæ£ãã代ããã«ããã«ãŒãŸãã¯
ç§èªèº«ã®åµé ç©ãªãäœãã
2017幎7æ13æ¥æšææ¥ã16ïŒ23 Alexandre Bourgetã notifications @ github.com
æžããŸããïŒ
åèãŸã§ã«ãç§ã¯https://github.com/abourget/secrets-bridgeãäœæããŠ
ãã«ãæã®ç§å¯ã®åé¡ãåŒæ°ãšããŠæž¡ãããšãã§ãã䜿ãæšãŠã®æ§æãäœæããŸãã
ãã«ãããã»ã¹äžã«ããã¹ãã«æ¥ç¶ããŠãã§ããããŸã
ã·ãŒã¯ã¬ããã䜿çšããŠããã¹ãããªããžã匷å¶çµäºã§ããŸãã ããšã
build-argsã¯ã©ããã«ä¿åããããµãŒããŒã圹ã«ç«ããªããªã£ãç¬éã«äœ¿çšã§ããªããªããŸã
殺ãããŸãããµãŒããŒã¯ãTLSãä»ããŠãã³ããªã³ã°ãããSSHãšãŒãžã§ã³ã転éããµããŒãããŸã
WebSocketéä¿¡ã Windowsã§ãåäœããŸãïŒâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moby/moby/issues/13490#issuecomment-315111388 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAZk5hZqTAgPBjS9cFP_IsYNa9wv-yoAks5sNjaBgaJpZM4Eq021
ã
ææ°ã®ç§å¯ã®ææ¡ã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ
ååã®DockerCEãªãªãŒã¹ã«å«ãŸããŠããæ°ããããã«ãã¹ããŒãžãã«ããæ©èœã¯ãç§ãã¡ã®åé¡ã®å€§éšåã解決ãããšæããŸãã
https://docs.docker.com/engine/userguide/eng-image/multistage-build/
ã³ã³ããããã®ã³ãã³ããå®è¡ããããã«çã¿åºãããDockerfile
調çãä»å±ããŠããŸã/dev
ãšäœãå€æŽãå±€ã«ããã«èšé²ãããªããã°ãªããªãè¡ãããŸããã dockerã¯ãã®ããŠã³ããã€ã³ããä»ããŠãŠãŒã¶ãŒã·ãŒã¯ã¬ãããé
ä¿¡ã§ããŸããïŒ åæ§ã®æ¹æ³ã§/dev/init
ãŸããïŒ
åŒæ°ã䜿çšãããã«ãã¹ããŒãžãã«ãã¯ã€ã¡ãŒãžã«ãªãŒã¯ããŸããããå®è¡äžã®ã·ã¹ãã ã®ããã»ã¹ãªã¹ãã®äžéšãšããŠã·ãŒã¯ã¬ãããå ¬éãããããããã¯äŸç¶ãšããŠéåžžã«éèŠã§ãããã®ãããå®éã«ã¯è§£æ±ºãããŸããã
2017幎8æã§ããäžæ¹ãå ã®å·ã®ãç§å¯ãåŠçããããã®å€ãææ¡ãã¯ã2014幎ã®å·ã«ãªã³ã¯ããŠããŸãã
ãã«ãæã®ç§å¯ã«å¯Ÿããè¯ã解決çã¯ãŸã ãããŸããã --build-time-secret
ãã©ã°ãæäŸããPRã¯ã説æãªãã§ã¯ããŒãºãããŸããã ãã§ã¯ãäœãå¿
èŠã§ããïŒãã«ã¯äœã衚瀺ãããŸããã ã»ã¯ã·ã§ã³ãå®è£
ãããŠããŸãã
ãã®é
æ°ãã«èšçœ®ãããCEOã®ã¹ãã£ãŒãã·ã³ã¯ãããžãã¹é¡§å®¢ã«çŠç¹ãåœãŠãŠããŸã
販売ãããŒã±ãã£ã³ã°ããŒã ã®åœ¢æãæ¯æŽããããã®7500äžãã«ã®ææ°ã©ãŠã³ã
UPDãïŒ@ cpuguy83ãæ£ãããããŠæ£ãã以äžã«ææãããŠããããã«ãææ¡ã®å®å šãªèŠçŽã¯ïŒ33343ã«ãããŸãã
çµã¿èŸŒãŸããŠããªãããšã¯ããã£ãŠããŸãããä»ã®ãšããsecrets-bridge
ã¯ããªãããŸãæ©èœããŸãã
@dmitriidãã®æ©èœãæ¬ èœããŠããããšãžã®äžæºãç解ããŠããŸãã ãã ããããã¯ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ïŒãŸãã¯ä»»æã®ã³ãã¥ããã£ïŒã«å¯ŸåŠããæ¹æ³ã§ã¯ãããŸããã
äžèšã®ææ¡ãžã®ãªã³ã¯ãæçš¿ããŸããããç§èªèº«ãé€ããŠãã³ã¡ã³ãã¯ãŸã£ãããããŸããã
ãããææ°ã®ç§å¯ã®ææ¡ã§ãïŒïŒ33343
@ cpuguy83ãããïŒ ãã®ãã£ã¹ã«ãã·ã§ã³ã®æåŸã®3åã®1ïŒããã³ä»ã®ããã€ãïŒã¯èªãããšãããããããã®ã§ïŒåæã«è§£æ±ºçãæ¢ããŠããéïŒã¹ãããããã®ã§ãã³ã¡ã³ããæ¬åœã«éããŸãããããããªãã:(
ãã®ã¹ã¬ããã¯2015幎ã«éå§ãããŸããã
2017幎ã§ãã
ãŸã ããã¯ã§ã²ã©ããã®ã§ã¯ãªããã«ãæã®ç§å¯ã®è§£æ±ºçããªãã®ã¯ãªãã§ããïŒ ããã¯å€ãã®äººã«ãšã£ãŠæããã«å€§ããªåé¡ã§ãããããã§ãå®éã«è¯ã解決çã¯ãããŸããïŒ
@mshappe
ãŸã ããã¯ã§ã²ã©ããã®ã§ã¯ãªããã«ãæã®ç§å¯ã®è§£æ±ºçããªãã®ã¯ãªãã§ããïŒ
æ£ãã解決ããã®ã¯é£ããåé¡ã§ãããæåéãäœçŸäžãã®äººã ã«ãã£ãŠäœ¿çšããããã®ã ããã§ãã
ããªãã®ããäžã®ç§ã®ã³ã¡ã³ããèŠãŠãã ããïŒ
äžèšã®ææ¡ãžã®ãªã³ã¯ãæçš¿ããŸããããç§èªèº«ãé€ããŠãã³ã¡ã³ãã¯ãŸã£ãããããŸããã
ãããææ°ã®ç§å¯ã®ææ¡ã§ãïŒïŒ33343
äœããå®è£ ãããŠããã®ãèŠããå Žåã¯ãäœããå®è£ ãããŠããªãããšã蚎ãã以äžã®ããšãããå¿ èŠããããŸãã ææ¡ã«ã³ã¡ã³ãããŠãã ããïŒ
解決ããã®ã¯ãšãŠãç°¡åã§ãã ããã¯ãã äœããå¿
èŠãšããŸããããã§ãªããã®ã¯äœã§ã
ç»åã«çŒãä»ããŸããã ãããŠå®éã«ã¯ããã¯éåžžã«ç°¡åã«è§£æ±ºã§ãã䜿çšãããã
ãdockerbuildãã䜿çšããŠãPython APIãããã«ãŒããŸãã¯ãã®ä»ã®ãã®ã䜿çšããŸãã
21:42ã®æ°Žææ¥ã2017幎8æ23æ¥ã«ã¯ããã©ã€ã¢ã³ã»ãŽã[email protected]
æžããŸããïŒ
@mshappe https://github.com/mshappe
ãããã³ã°ã§ã¯ãªããã«ãæã®ç§å¯ã®è§£æ±ºçããªãã®ã¯ãªãã§ãã
ã²ã©ãããŸã ïŒæ£ãã解決ããã®ã¯é£ããåé¡ã§ããã
æåéãäœçŸäžãã®äººã ã«ãã£ãŠäœ¿çšãããŸããããªãã®ããäžã®ç§ã®ã³ã¡ã³ããèŠãŠãã ããïŒ
äžèšã®ææ¡ãžã®ãªã³ã¯ãæçš¿ããŸããããã³ã¡ã³ãã¯0件ãããããŸããã
ç§èªèº«ãé€ããŠã
ãããææ°ã®ç§å¯ã®ææ¡ã§ãïŒïŒ33343
https://github.com/moby/moby/issues/33343äœããå®è£ ãããŠããã®ãèŠããå Žåã¯ã以äžã®ããšãããå¿ èŠããããŸã
äœããå®è£ ãããŠããªãããšã蚎ããŸãã ææ¡ã«ã³ã¡ã³ãããŠãã ããïŒâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moby/moby/issues/13490#issuecomment-324441280 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAZk5oEpcipmfCji1mXz6MOVt0p6-OA6ks5sbIC0gaJpZM4Eq021
ã
@binarytempleç§ã¯ä»£ããã«ããã«ãŒãæ€èšãå§ããŸããããå®éã«ã¯...ãããããã®å¥åŠãªã¡ã³ã¿ã«ãããã¯ããã«ãŒããã«ãæã®ç§å¯ã«ã€ããŠæã£ãŠããããã«èŠããããã§ãã
ããã¯å¥åŠã ã ç§ã¯äººã
ãšè©±ããŸãããããŠåœŒãã¯ããããçš®é¡ã®æããªããã¯ãããŠããŸã
HTTPãµãŒãã¹ã䜿çšãããããªãã®-ãã¹ãŠãç Žæ£ããïŒç£èŠ/詳现
ããŒããã·ã§ã³/ã·ã³ãã«ãïŒPOSIX / SELinuxã³ã³ããæäŸããŸãã ç§ã¯ããŸãã
ç解ããã æåŠã¯ç§ã«ã¯éè«ççã«æããŸãã
æ°Žã§ã2017幎8æ23æ¥ã23æ03åãã€ã±ã«ã»ã¹ã³ããShappe [email protected]
æžããŸããïŒ
@binarytemplehttps ïŒ//github.com/binarytempleç§ãèŠå§ãã
代æ¿æ段ãšããŠã®ããã«ãŒãå®éã«ã¯...ãããããã®å¥åŠãªçç±ã ãã§
ã¡ã³ã¿ã«ãããã¯ããã«ãŒã¯ãã«ãæã®ç§å¯ã«ã€ããŠæã£ãŠããããã§ããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moby/moby/issues/13490#issuecomment-324461257 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAZk5ppZYsOhdfvgotCUk5l41Truo_EEks5sbJOLgaJpZM4Eq021
ã
ãã«ãã¹ããŒãžDockerãã«ãã¯ããããã®åé¡ã®å€ãã解決ããŸãã
æãåçŽãªåœ¢åŒã§ã¯ããã«ãåŒæ°ãšããŠã·ãŒã¯ã¬ãããæ¿å ¥ã§ããŸããã·ãŒã¯ã¬ããã¯ãåŒæ°ãå¿ èŠã§ãããšæ瀺çã«ç€ºãç»åã®ç»åå±¥æŽã®äžéšã«ãªããŸãã neclimdulãææããŠããããã«ãç§å¯ã¯ãã«ãäžã«ããã»ã¹ãªã¹ãã§å©çšå¯èœã«ãªããŸãã IMOã¯å€§ããªåé¡ã§ã¯ãããŸããããå¥ã®ã¢ãããŒããæ¡çšããŠããŸãã
ãã«ããµãŒããŒã¯ãããªã¥ãŒã ãšããŠããŠã³ããããããã€ãã®ã·ãŒã¯ã¬ããã§å®è¡ããããããf.exã®CIã³ããŒã /mnt/secrets/.npmrcãçŸåšã®äœæ¥ãã£ã¬ã¯ããªã«è¿œå ããŸãã 次ã«ã以äžã®ãããªDockerfileã䜿çšããŸãã
FROM node:latest
WORKDIR /usr/src/app
COPY .npmrc .
RUN echo '{ "dependencies": [ "lodash" ] }' > package.json
RUN npm install
RUN ls -lah
FROM alpine:latest
WORKDIR /usr/src/app
COPY --from=0 /usr/src/app/node_modules ./node_modules
RUN ls -lah
CMD ["ls", "./node_modules"]
çµæã®ã€ã¡ãŒãžã«ã¯äŸåé¢ä¿ãã€ã³ã¹ããŒã«ãããŸããã.npmrcãŸãã¯ãã®ã³ã³ãã³ãã®ãã¬ãŒã¹ã¯å«ãŸããŸããã
ãã«ãã¹ããŒãžãã«ãã䜿çšãããšããã«ãæéã®ç§å¯ããã«ãããã»ã¹ã«å ¬éããæ¹æ³ãå®å šã«å¶åŸ¡ã§ããŸãã Vaultãªã©ã®å€éšã¹ãã¢ããããªã¥ãŒã ïŒKubernetesã®Secretsã¹ãã¢ããããŠã³ãïŒãä»ããŠã·ãŒã¯ã¬ãããååŸãããªããžããªã§gpgæå·åããããTravisã·ãŒã¯ã¬ãããªã©ãååŸã§ããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã§ãã«ãã¹ããŒãžãã«ãã䜿çšããå Žåã¯ãã·ãŒã¯ã¬ããããŒã¿ãããŒã«ã«ããŒã¢ã³ã®ã¿ã°ãªãã€ã¡ãŒãžå ã«æ®ãããã®ã€ã¡ãŒãžãåé€ããããŸã§ããã®ããŒã¿ãåŸç¶ã®ãã«ãã§ãã«ããã£ãã·ã¥ã«äœ¿çšã§ããããšã確èªããŠãã ããã ãã ããæçµçãªã¿ã°ä»ãã€ã¡ãŒãžãããã·ã¥ãããšãã«ãã¬ãžã¹ããªã«ããã·ã¥ãããŸããã
@androaç§ã¯ãã®è§£æ±ºçã奜ãã§ãããç§å¯ãäœæ¥ãã£ã¬ã¯ããªã«ã³ããŒãããŠããããšã«ã€ããŠã©ãæããããããŸããã ãã©ã€ããŒãCIãµãŒããŒã§ã¯ããããåé¡ãããŸããããä¿è·ãããå Žæãããã¡ã€ã«ãã³ããŒããã¹ãã§ã¯ãªãããŒã«ã«ã®å»ºç©ã«ã¯ããŸãé©ããŠããŸããïŒã³ããŒèªäœã¯ã誀ã£ãŠçµäºããå¯èœæ§ããããããç ©ãããå±éºã§ãããœãŒã¹ç®¡çã§ã¢ããïŒã ãã1ã€ã®ãªãã·ã§ã³ã¯ãããåºãDockerãã«ãã³ã³ããã¹ãã䜿çšããããšã§ãããã«ãŒãããªã¥ãŒã å šäœãæå³ããå¯èœæ§ã®ããå€ãã®äžè¬çãªã·ãŒã¯ã¬ããããããŸãã ãããããŒã«ã«ããã³CIã«é©ãããã®ã«ããæ¹æ³ã«é¢ããææ¡ã¯ãããŸããïŒ
ããã¯ãã£ãšããŸãã èªç§°ãäžçããªãŒããããœãããŠã§ã¢ã³ã³ãããã©ãããã©ãŒã ãã¯ãéå»3幎éããã«ãæã®ã·ãŒã¯ã¬ãããã³ã³ããã«å®å šã«æž¡ãããšãæ°ã«ããããšã¯ã§ããŸããã
ãç§ãã¡ã¯ããç¥ã£ãŠããããšãééããèš±ããœãããŠã§ã¢ãäœããªããã¢ãããŒããšãèšèšæ®µéã§ã®äžå¹žãªçç¥ãšããŠãããã説æã§ããããšã«ãã£ãŠãDevOpsãœãããŠã§ã¢ã®å¿ èŠãªæ©èœã®1ã€ã«åãããµããŒããšç®ã«èŠããé²æ©ã¯ãããŸããã ãã¹ãŠã®ã³ãã¥ããã£ã¯ã誰ããããããæªçšããããšãæããŠãããŒãžå¯Ÿå¿ã®æ¹åãææ¡ããæã«ã¯ãããéçºããããšãããã·ã£ããããŠã³ããŸãã ãã®ã¯ã©ã¹ã¿ãŒã®å€±æã®çµæãšããŠãDockerã³ã³ãããŒã®ãã«ããã§ãŒãºã«ã®ã¿å¿ èŠãªç§å¯éµãæž¡ããã¹ãŠã®æ¹æ³ã§ã¯ããããã®ã·ãŒã¯ã¬ããããã«ãå±¥æŽã«ä¿åãããããã«ãå±¥æŽã決ããŠé¢ããªãããšãæåŸ ããŠããã»ã¹ãªã¹ãã«è¡šç€ºããå¿ èŠããããŸããä¿¡é Œã§ãããã·ã³ããŸãã¯ããã»ã¹ãªã¹ãã衚瀺ããããšãæ³å®ãããŠããªã人ã¯èª°ãããŸããã ã©ã¡ãããæãå¯å®¹ãªã»ãã¥ãªãã£ç£æ»ã§ãã倱æããŸãã
ãã®åé¡ã¯2幎以äžåããéãããŠããããã®æç¹ã§åé¡ã«ã€ããŠããã£ãŠããããšãšãããã«å¯ŸããŠäœããã¹ãããèŠçŽããŠããŸãã ãŸã 解決çã¯ãããŸããã ããã¯ãç®±ããåºããŠæãè€éãªç§å¯ç®¡çã¹ããŒã ããµããŒãããå æ¬çãªãœãªã¥ãŒã·ã§ã³ãæå³ãããã®ã§ã¯ãããŸããã 解決çã¯ãŸã£ãããªãããã¹ãç°å¢å€æ°ãããã«ãã³ã³ããã¹ãå€ã®ãã¡ã€ã«ãã¹ããã·ãŒã¯ã¬ãããããŒãããããšããããŸããã æãå³æ Œãªæ¡ä»¶ã§ããå®å šã§ãããšèŠãªãããšãã§ãããã®ã¯ãããŸããã
ç§ã¯ãã®åé¡ã«è€æ°åãè¿°ã¹ãŠããããã«@OJezuããã®äžã«åºæ¬çã«0ã³ã¡ã³ãä»ãã®ãªãŒãã³ææ¡ãããŠããŸãã
ç§å¯ãæŒãé²ããããã®ãèŠããå Žåã¯ãæéããããŠææ¡ã«ã³ã¡ã³ãããŠãã ããã
æ¯æ¥ããã«åãçµãã§ãã人ã ãæ»æããéãæã€ä»£ããã«ã次åã¯è³ªåãããŠãããªããã³ã¡ã³ãããŠããåé¡ã«ã€ããŠå°ãªããšãææ°ã®ã³ã¡ã³ããèªãã§ã¿ãŠãã ããã
æ¬åœã«äžçæžåœåããŠãã人ããããšãç©äºã¯ãã°ãã°è¡ãè©°ãŸã£ãŠèŠããããšããããŸãã
ãã«ãã«ã€ããŠã¯ããã®äœæ¥ã®ã»ãšãã©ãä»æ¥è¡ãããŠããgithub.com/moby/buildkitãåç
§ããŠãã ããã
ããããšãã
ç§ã¯å°ãã»ãé ãã§ããä»æ¥ãç¹ã«ãã«ã¿ã€ã ã§äœæ¥ãããŠãããããã¡ã¯ãã¹ã¿ã³ããŒããšããŠã®å°äœã確ç«ããŠãããããžã§ã¯ãã§ãåé¡ãšãªããªãåé¡ã®è§£æ±ºçãèŠã€ããããã«9æéãè²»ãããããã§ãã ã ç§ã¯ãããã®ã³ã¡ã³ããæžããŠããéãèªå·è¡çºãèªã£ããæ¢ãããããªãããã«äžçæžåœåªåããŠããŸããã
ç§ã¯ãã®åé¡ã調ã¹ã2ã€ã®è§£æ±ºçãžã®èšåãèŠãŸããã1ã€ã¯4æ以éåæ»ããŠããããã1ã€ã¯ãã§ã«ééãããŠããŸãã ã³ã¡ã³ã0ã®ææ¡ã«ã¯ã4人ã®åå è ãåãæ°ã®ã³ã¡ã³ãããããããã€ãã®æãããªå éšãã£ã¹ã«ãã·ã§ã³ã«ã€ããŠèšåããŠããããšã«æ°ä»ããã«ã¯ããããŸããã ããããããã°ã©ã ãå®è¡ããŠããªã人ããã®è¿œå ã®ãã£ãŒãããã¯ãå¿ èŠãªå Žåã¯ãåã®ã³ã¡ã³ãã§è§Šããåé¡ã«ã€ããŠãããå€ãã®èããæäŸã§ããŸãã
@OJezu
å°ãªããšã1ã€ã®ç°¡åãªè§£æ±ºçããããŸããå°çšã®ãµãŒãã¹ïŒããšãã°ãJenkinsã§å®è¡ïŒã䜿çšããŠã¢ãŒãã£ãã¡ã¯ããæ§ç¯ããŸãã
ãã®ãµãŒãã¹ã¯ãã€ã¡ãŒãžãäŸåããã¢ãŒãã£ãã¡ã¯ãã«ã¢ã¯ã»ã¹ããããã«å¿
èŠãªãã¹ãŠã®ããŒãå®å
šã«ããããžã§ãã³ã°ããŸãã
çµäºæã«ãã¢ãŒãã£ãã¡ã¯ãã¯å®å
šãªå ŽæïŒJenkinsãªã©ïŒã«é
眮ãããŸãã ãããã®ã¢ãŒãã£ãã¡ã¯ãã«ã¯ã·ãŒã¯ã¬ããã¯å«ãŸãããbinaries / sources / etcãå«ããã£ã¬ã¯ããªã®ã¿ãå«ãŸããŸãã
次ã«ãå¥ã®ãµãŒãã¹ïŒããšãã°ãå¥ã®Jenkinsãžã§ãïŒããããã®ãã«ãæžã¿ã¢ãŒãã£ãã¡ã¯ãã«ã¢ã¯ã»ã¹ããã€ã¡ãŒãžã¬ãžã¹ããªã«å®å
šã«ããã·ã¥ã§ããã€ã¡ãŒãžã«å€æããŸããã€ã¡ãŒãžã¬ãžã¹ããªã¯ãéçºè
/æ¬çªãã·ã³ããã¢ã¯ã»ã¹ããããã«rbac / keysã䜿çšããŠå®å
šã«ä¿è·ãããŸãã
ã€ãŸããDockerã€ã¡ãŒãžã®ãã«ãããã»ã¹ã¯ãä»ã®ãã«ãã·ã¹ãã ãšåãã§ãããã«ããã€ãã©ã€ã³ãé 眮ããå¿ èŠããããŸãã
@Vanuanãã¹ãŠã®èšèªãããã±ãŒãžåãšã€ã³ã¹ããŒã«ã§
äŸïŒ
Pythonãããžã§ã¯ãã¯ããã«ãæéã§ã¯ãªããã€ã³ã¹ããŒã«æéã«èŠä»¶ãåã蟌ã¿ãŸãã ç§ãã¡ã®å Žåããã©ã€ããŒãpypi / condaãªããžããªããïŒãã¹ã¯ãŒãã§ä¿è·ãããŠããŸãïŒ
ããïŒ ã€ã³ã¹ããŒã«ããã«ãããã»ã¹ã®äžéšã«ããŠãããã€ã³ã¹ããŒã«ããããã±ãŒãžãæ°ããã€ã¡ãŒãžã«ã³ããŒããŸãã
ãã«ãã€ã¡ãŒãžãšæ¬çªã€ã¡ãŒãžãåãPythonããŒã¹ã€ã¡ãŒãžã«åºã¥ããŠããããšã確èªããå¿ èŠããããŸãã
å®éããã¹ãŠãæ°ããã€ã¡ãŒãžã«ã³ããŒããããšãã§ããŸãã ãã ããDockerfileã®èŠç¹å šäœãåé€ãããŸãã äžé£ã®ãã£ã¬ã¯ããªãã³ããŒããã ãã§Dockerfileã䜿çšã§ããã®ã«ããªãDockerfileãããã®ã§ããããã
ãããã£ãŠãéçºãã·ã³ãŸãã¯CIã®ããããã§ãã©ãã§ãdocker build .
å®è¡ãããšããåçŽãªãããŒãäœæããããšã¯ã§ããŸããããããã±ãŒãžããã«ãããã«ã¯CIã«äŸåããå¿
èŠããããŸãã ã§ã¯ããªãDockerãæ°ã«ããå¿
èŠãããã®ã§ããããã travisãã¡ã€ã«ãäœæããããbambooã§ãããŒãæ§æãããã§ããŸãã
ãã©ã€ããŒããªããžããªããååŸã§ããã·ãŒã¯ã¬ããã䜿çšããŠãæåã®ã¹ããŒãžã®ãã«ãã§pip install requirements.txt
ã ãã䜿çšããããšã¯ã§ããŸããã 次ã«ã次ã®ã¹ããŒãžã®ãã«ãã¯ãæåã®ã¹ããŒãžãããµã€ãããã±ãŒãžãã³ããŒããã ãã§ãã
äžé£ã®ãã£ã¬ã¯ããªãã³ããŒããã ãã§Dockerfileã䜿çšã§ããã®ã«ããªãDockerfileãããã®ã§ããããã
ãªãã ãã§ããïŒ Dockerfileã䜿çšããŠãã«ãããããšã«ã¯äžè²«æ§ããããŸãã
ç»åã®ä»æ§ã¯ãåãªãzipãã¡ã€ã«ã®éãŸãã§ã¯ãããŸããã ç°å¢å€æ°ãã³ãã³ãã©ã€ã³åŒæ°ãããªã¥ãŒã ãªã©ããããŸã
Dockerfileãªãã¡ã¬ã³ã¹ãèªãã§ãã ããïŒ
https://docs.docker.com/engine/reference/builder/
DockerfileãMakefileã®ä»£ããã«ãªããšèããŠãäž»ã«RUN
åœä»€ã«çŠç¹ãåãããŠããããã§ãã ããã§ã¯ãªãã Dockerfileã¯ã1ã€ã®ç®çã®ã¿ãç®çãšããŠããŸãããœãŒã¹ãããªã¢ã«ããã€ã¡ãŒãžãæ§ç¯ããããšã§ãã ãã®ãœãŒã¹ãããªã¢ã«ãäœã§ãããïŒhttpãŸãã¯gitãªããžããªãä»ããŠããŠã³ããŒãããããã€ããªïŒã¯éèŠã§ã¯ãããŸããã Dockerã¯ãç¹å®ã®æ¡ä»¶äžã§CIã·ã¹ãã ãšããŠäœ¿çšã§ããŸãããCIã·ã¹ãã ã§ããå¿
èŠã¯ãããŸããã
travisãã¡ã€ã«ãäœæããããbambooã§ãããŒãæ§æãããã§ããŸãã
ãã«ãããã»ã¹ã®çµæãååŸããŠãã€ã¡ãŒãžãã³ã³ãããŒã䜿çšããã«å¥ã®ç°å¢ã§å®è¡ã§ããå Žåã¯ãDockerãæ°ã«ããå¿ èŠã¯ãããŸããã ãªãã§ïŒ
ãã«ãã¹ããããå€æŽãããå Žåã«ã®ã¿ããã«ãéã§ãªã»ãããä¿èšŒããããå³å¯ã«å¶åŸ¡ãããåå¥ã®ç°å¢ã CIãµãŒããŒïŒTravisãªã©ïŒã ãã§ãªããã©ãã§ãå®è¡ã§ããæ©èœããã«ãåœä»€ãã³ãŒãã«çµã³ä»ããŸããããã¯ããã«ããç°ãªãã³ãŒããã©ã³ãã«å€æŽãããå ŽåïŒããšãã°ã1ã€ã®ãã©ã³ãã§ã®ã¿å®è¡ç°å¢ã®ããŒãžã§ã³ãå€æŽããå ŽåïŒã«é©ããŠãããšæããŸãã éçºè ã®ãã·ã³ã§ãã«ãã³ã³ãããå®è¡ããå¯èœæ§ãä»ã®æ¹æ³ã§ã¯èªåã®ã·ã¹ãã ãã¢ããã°ã¬ãŒãããæ¹æ³ãããããªãéçºè ã«ç°å¢å šäœãåºè·ã§ããŸãããä»ã®ãã¹ãŠã®äººãšåãç°å¢ã§ããŒã«ã«ã«å€æŽãå ããŠã¢ããªã±ãŒã·ã§ã³ããã«ãã§ããŸãã
ãã®ãã¹ãŠãå¿ èŠãªãå Žåã¯ãlxc + ansibleã«åºå·ããDockerã¯å¿ èŠãããŸããã
ãã®ããã«docker build
ã¯å¿
èŠãããŸããã
ãã®ããã«
docker build
ã¯å¿ èŠãããŸããã
ãã¡ãããåäžã®èªçµŠèªè¶³ã®Dockerfileã®ä»£ããã«ããããžã§ã¯ãããšã«ã«ã¹ã¿ã ã®Makefile
ãŸãã¯build_image.sh
ã¹ã¯ãªãããæäŸããããšãã§ããŸãããããã«ã¯è€æ°ã®æ¬ ç¹ããããŸãã
docker build
ãå®è¡ã§ãããã¹ãŠã®ã·ã¹ãã ã§ã€ã¡ãŒãžããã«ãã§ããããã«ãªããŸãã ã«ã¹ã¿ã ã®Makefile
ãŸãã¯build_image.sh
æäŸããããšã§ããµããŒãããããã¹ãŠã®ãã©ãããã©ãŒã ã§ããããæ©èœããããšãæåã§ç¢ºèªããå¿
èŠããããŸããdocker build
ã®åäœã®äžéšãç¥ã£ãŠããŸãã ãããžã§ã¯ãããšã«ã«ã¹ã¿ã ã®Makefile
ãŸãã¯build_image.sh
ãããå Žåã¯ãæåã«ããã«ããã¯ãªãŒã³ã¢ãããçµæãã©ãã«ã©ã®ãããªåœ¢åŒã§ãããã確èªããå¿
èŠããããŸããããã€ãã®ãã£ãã·ã³ã°ã§ãããã©ã®ãããªåœ¢åŒã§ã..ããããDockerfileã¯èªçµŠèªè¶³ã«ã¯ã»ã©é ãã§ãã ç¹ã«éçºç°å¢åãã
ãã®ããšãèæ
®ïŒ
docker build
ã®ããŸããŸãªãªãã·ã§ã³ããã¹ãŠç¥ã£ãŠããããã§ã¯ãããŸããããã»ãšãã©ã®äººã¯bashã¹ã¯ãªããã®å®è¡æ¹æ³ãç¥ã£ãŠããŸããdocker build
ã¯ãã³ã³ããã¹ããã£ã¬ã¯ããªã«ãã£ãŠç°ãªãã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ïŒDockerfileãæäŸããããšã§ãdockerbuildãå®è¡ã§ãããã¹ãŠã®ã·ã¹ãã ã§ã€ã¡ãŒãžããã«ãã§ããããã«ãªããŸãã
Dockerfileã¯ãã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ãä¿èšŒããŸããã ããã§ããè€æ°ã®ãã©ãããã©ãŒã ã«è€æ°ã®DockerfileãæäŸããå¿ èŠããããŸãã ãdockerbuildãå®è¡ã§ããããšã¯ããLinuxã䜿çšããããšããæå³ã§ã¯ãããŸããã Dockerã¯Windowsãã€ãã£ãã€ã¡ãŒãžããµããŒãããŠããŸãã Windowsãã¹ãã§Linuxãã·ã³ãç¹ã«å¯Ÿè±¡ãšãããã®ãå®è¡ããå Žåã¯ãCygwin + LinuxVMã䜿çšããå¿ èŠããããŸãã
ãããx86ãšARMã«ã€ããŠã¯è§ŠããŸããã§ãã...
ãŠãŒã¶ãŒåãã®æ¢ç¥ã®ã€ã³ã¿ãŒãã§ãŒã¹ïŒdockerãç¥ã£ãŠããå Žåã¯ãDockerfileãèŠãªããŠãããããžã§ã¯ãã®dockerbuildã®åäœã®äžéšãç¥ã£ãŠããŸãã
ããããªãéãã 誰ãããã©ã¡ãŒã¿ãåäžã®make
ã³ãã³ããªãã§bashã¹ã¯ãªãããå®è¡ããæ¹æ³ãç¥ã£ãŠããŸãã docker build
ã docker run
ãŸãã¯docker-compose
ãã¹ãŠã®ç°ãªãã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãæ£ããæå®ããæ¹æ³ãç¥ã£ãŠãã人ã¯ã»ãšãã©ããŸããã ã©ãããŒbashãŸãã¯cmdã¹ã¯ãªãããå¿
èŠã«ãªãããšã¯é¿ããããŸããã
Dockerã®äººã ãè¡ã£ãããšã«æ¬æãè¡šããŠãããªãã¯ããŸãã«ãå€ãã®ããšãæ±ããŠãããšæããŸãã Mobyprojectã«ã¯ãèãããããã¹ãŠã®éçºã¯ãŒã¯ãããŒããµããŒãããã»ã©åºãç¯å²ããªãã®ã§ã¯ãªãããšæããŸãã
ç§ã¯ããªãã®ãã¹ãŠã®ç¹ãåå¥ã«åé§ããã€ããã¯ãããŸããã ãŸãããã¡ããããåäžã®Dockerfileãã¢ãããŒãããŸã£ããæ©èœããªãç¶æ³ãåžžã«èŠã€ããããšãã§ããŸãã ãã ããããªããæèµ·ããã»ãšãã©ãã¹ãŠã®ãã€ã³ãïŒãã¹ãŠæå¹ã§é¢é£æ§ã®ãããã®ïŒã«ã€ããŠããã«ã¹ã¿ã ã¹ã¯ãªãããŸãã¯makefileãã¢ãããŒãã¯åããããæªããæªããã®ã©ã¡ããã§ãããšç§ã¯äž»åŒµããŸãã äžäŸãšããŠã1ã€ã®ãã€ã³ãïŒ
ã»ãšãã©ã®éçºè ã¯dockerbuildã®ããŸããŸãªãªãã·ã§ã³ããã¹ãŠç¥ã£ãŠããããã§ã¯ãããŸããããã»ãšãã©ã®äººã¯bashã¹ã¯ãªããã®å®è¡æ¹æ³ãç¥ã£ãŠããŸãã
ç§ã10ã®ãããžã§ã¯ãã«é¢äžããŠããŠããããããã¹ãŠDockerfileã䜿çšããŠããå Žåãdockerã«ã€ããŠ1åã ãåŠã¶å¿
èŠããããŸãããããªãã®ææ¡ã«ããã10ã®ãŸã£ããç°ãªããã«ãã¹ã¯ãªãããåŠã¶å¿
èŠããããŸãã ãããžã§ã¯ãFooã®build_image.sh
ã®ãã£ãã·ã¥ãã¯ã€ãããŠæåããããçŽãã«ã¯ã©ãããã°ããã§ããïŒ ããã¯ã¯ã£ããããŠããŸããã ã€ã¡ãŒãžã®æ§ç¯ãdocker build
ã§è¡ãããå Žåãããã¯æããã§ãïŒDockerãã©ã®ããã«æ©èœããããç¥ãå¿
èŠããããŸããã build_image.sh
ããåºãŠããã€ã¡ãŒãžã䜿çšããããã«ããããè¡ãå¿
èŠããããŸãïŒã
å šäœãšããŠãç§ãä»ã®äººãèšãããã®ã¯ã/ many /ã·ããªãªã§ã¯ããåäžã®Dockerfileãã¢ãããŒãã人ã ã«ãšã£ãŠéåžžã«ããŸãæ©èœããŠããããã«èŠããããšã§ãïŒãããdockerãéåžžã«äººæ°ãããçç±ã§ãïŒãéåžžããã¹ãŠã®ãªãœãŒã¹ã«ç§å¯ãªãã§ã¢ã¯ã»ã¹ã§ãããªãŒãã³ãœãŒã¹ã®äžçã ãããããªãœãŒã¹ã®äžéšã«ã¢ã¯ã»ã¹ããããã«ã¯ã¬ãã³ã·ã£ã«ãå¿ èŠãªç¶æ³ã§ãããªããæããããã«ãªã£ãã®ãšåããã¿ãŒã³ãé©çšããããšãããšãã¢ãããŒãã¯å€±æããŸãã ãããæ©èœãããããã®æè¡çã«ããã»ã©è€éã§ã¯ãªãæ¹æ³ã®å€ãã®ææ¡ïŒããã³å®è£ ïŒããããŸããããé·ãéããã¯äœãèµ·ãããŸããã§ããïŒããã¯äœåºŠãäžã«çœ®ãããŸããïŒã ãããã£ãŠã欲æ±äžæºã
ããšãã°ãïŒ33343ã®ãªã³ã¯ãããææ¡ãªã©ã人ã ãããã«åã泚ãã§ããããšãæè¬ããŸãã ç§ã®æçš¿ã¯ãäœäººãã®äººã ãäœãããããŠãªã圌ããããã§ãããæ±ããŠæ»ã£ãŠããã®ããåæ©ä»ããããšã«ã€ããŠã§ãã
Dockerã®äººã ãè¡ã£ãããšã«æ¬æãè¡šããŠãããªãã¯ããŸãã«ãå€ãã®ããšãæ±ããŠãããšæããŸãã Mobyprojectã«ã¯ãèãããããã¹ãŠã®éçºã¯ãŒã¯ãããŒããµããŒãããã»ã©åºãç¯å²ããªãã®ã§ã¯ãªãããšæããŸãã
ã»ãšãã©ã®äººãããã§æ±ããŠããã®ã¯ãã®ãããªãã®ã§ã¯ãªãããã§ãããã«ã¹ã¿ã build_image.sh
ã§äœ¿çšãããããå®å
šæ§ãäœããªãæ¹æ³ã§docker build
ã·ãŒã¯ã¬ããã䜿çšããç°¡åãªæ¹æ³ã®ããã ãã§ãã build_image.sh
ã ãã®ããŒãºãæºãã1ã€ã®æ¹æ³ã¯ããã«ãã¿ã€ã ããŠã³ãã®ããã§ãã ãããã«ã¯æ¬ ç¹ããããããããããè¯ãæ¹æ³ããããŸãããæ±ããããŠããã®ã¯ãèãããããã¹ãŠã®ã³ãŒããŒã±ãŒã¹ãã«ããŒããããšã§ã¯ãããŸããã
ç³ãèš³ãããŸãããããã®ãã±ããã®åãŠãŒã¶ãŒã®ãŠãŒã¹ã±ãŒã¹ã¯å°ãç°ãªããŸãã ãããã¯ã³ãŒããŒã±ãŒã¹ã§ãããããŸããŸãªãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãã
docker run
ã䜿çšããŠãããžã§ã¯ãããã«ããã docker prune
ã䜿çšããŠã¯ãªãŒã³ã¢ããããŸã@Vanuanãªã®ã§ãåºæ¬çã«ã¯ãåºæ¬çãªç°å¢ä»¥å€ã«ã¯
ãã®åé¡ãæšé²ãã人ã ã¯ãDockerã®å¶éãããã¯ããå¿ èŠããªããDockerã€ã¡ãŒãžã䜿çšããããã·ã³ãã«ã§ããããããã¢ãããŒããæãã§ããŸãã
èå³ã®ãã人ã®ããã«ïŒç§ã¯FTP_PROXYã®ãããªãããã©ã«ãã§ãã¹ã¯ããããbuild-argsãå©çšããŠã³ã³ããã¹ããæ§ç¯ããããšããŸããã docker-buildããããã®ãã¹ã¯ãããåŒæ°ãç»åã¡ã¿ããŒã¿ãç»åã¬ã€ã€ãŒã«å ¬éããªããšããäºå®ã«é¢ããŠã¯å®å šã§ãã
SECRET
ãããªååã®build-argã«æ¡åŒµããè©Šã¿ãã ãããããã®ãã«ãåŒæ°ã®ãã¹ã¯ãããæ§è³ªã¯å°æ¥ä¿èšŒãããªããããäœæ¥ã¯åççã«æåŠãããŸããã
ãã®åŸã®ç§ã®æåã®çã¯ã @ AkihiroSudaã®ã¢ããã€ã¹ã«åŸãã docker build --network
ãŸãã¯habitusã®ãããªããŒã«ã䜿çšããŠãäžæçãªtcpãµãŒããŒãä»ããŠã·ãŒã¯ã¬ãããä¿å/æž¡ãããšã§ãã
éšåçã«ã³ã¡ã³ãããŠããã®ã§ã5幎åŸãDockerãæçµçã«é©åãªè³æ Œæ å ±ç®¡çã®æ¹åã«å°ããªäžæ©ãèžã¿åºãããšã決å®ãããšãã«éç¥ãåãåããŸãããŸããçŸåšäœ¿çšããŠããããã¯ã®æŠèŠã説æããŸãã ãä»ã®äººãå©ããããããŸãã¯ç§ãç¥ããªãç©Žãéããããã«ã
次ã®@mumoshuã®åé¡ã§ããã«ãã·ãŒã¯ã¬ããã«predefined-argsã䜿çšãããã³ããã€ãã«åŸãããŸããã
ãããã£ãŠãåºæ¬çã«ã次ã®ãããªãããã³ã°ã§docker-composeã䜿çšã§ããŸãã
myProject:
build:
context: ../myProject/
args:
- HTTPS_PROXY=${NEXUS_USERNAME}
- NO_PROXY=${NEXUS_PASSWORD}
次ã«ãdocker-compose.ymlãã¡ã€ã«ã®ãããã©ã«ããŒã«ãNEXUS_USERNAMEãšNEXUS_PASSWORDã®ããŒãšå€ã®ãã¢ãå«ãã.envããšããååã®ãã¡ã€ã«ãšãããã«é©åãªå€ãäœæããŸãã
æåŸã«ãDockerfileèªäœã§ã次ã®ããã«runã³ãã³ããæå®ããŸãã
RUN wget --user $ HTTPS_PROXY --password $ NO_PROXY
ãŸããDockerFileã§ããããARGãšããŠå®£èšããªãã§ãã ããã
çµæã®ãã«ãã«ã¯ã¬ãã³ã·ã£ã«ãæµ®ããã§ããã®ããŸã ã©ãã«ãèŠã€ããŠããŸãã...ããããã©ããèŠãŠããã®ãããããŸãã.....ãããŠãç§ã®ãããžã§ã¯ãã®æ®ãã®éçºè ã«ãšã£ãŠã¯ããããããé©åãªå€ã䜿çšããŠ.envãã¡ã€ã«ãäœæããŸãã
@darmbrustç§ã¯ããªãã®è§£æ±ºçãè©ŠããŸãããã
ãããç§ã®composeymlã§ãïŒ
ããŒãžã§ã³ïŒã3.3ã
ãµãŒãã¹ïŒ
buildToolsImage:
image: vsbuildtools2017:web-v6
build:
context: .
dockerfile: ./vsbuild-web-v6-optimized.dockerfile
args:
- CONTAINER_USER_PWD=${CONTAINER_USER_CREDS}
ymlãã¡ã€ã«ã®é£ã«ãã.envãã¡ã€ã«ã¯æ¬¡ã®ãšããã§ãã
CONTAINER_USER_CREDS=secretpassword
ãããŠããããç§ã®dockerfileã§ãïŒ
# escape=`
FROM microsoft/dotnet-framework:4.7.2-sdk
# Add non-root user
CMD ["sh", "-c", "echo ${CONTAINER_USER_PWD}"]
RUN net user userone ${CONTAINER_USER_PWD} /add /Y
ãããŠæåŸã«ããããéå§ããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
docker-compose -f docker-compose.buildImage.yml build
ã€ã¡ãŒãžããã«ãããŸããã.envãã¡ã€ã«ã«ä¿åãããŠãããã¹ã¯ãŒãã¯äœ¿çšããŸããã
[èŠå] 1ã€ä»¥äžã®ãã«ãåŒæ°[CONTAINER_USER_PWD]ãæ¶è²»ãããŸããã§ãã
ããã§äœãæ¬ ããŠããŸããïŒ
ããããšãïŒ
dockerãã¡ã€ã«ã§https://docs.docker.com/engine/reference/builder/#predefined-argsã®ããããã䜿çšããå¿ èŠããããŸãã CONTAINER_USER_PWDã®ãããªç¬èªã®åŒæ°åã䜿çšããããšã¯ã§ããŸããã
ãããããªãã¯ã®ä»çµã¿ã§ããdockerã«ã¯predefined-argsã«å¯ŸããŠç¹å¥ãªåäœãããã宣èšããã«äœ¿çšã§ããŸãã ãããŠããããã宣èšããã«äœ¿çšããããšã«ããããããã¯ã©ãã«ãèšé²ãããŠããªãããã«èŠããŸãã
docker-composeãã¡ã€ã«ã䜿çšãããšããããã®äºåå®çŸ©ãããåŒæ°ãããé©åãªååã®äœãã«ãããã§ããŸãã
@darmbrustã¯ãã
ã§ããèããšæããŸãããïŒ ããè¯ãæšå¥šäºé
ã¯ãããŸããïŒ
ããããšãïŒ
ãããããTCPãä»ããŠssh-agentã¯ã¬ãã³ã·ã£ã«ãå
¬éããã»ã©èãã¯ãããŸãã
çãããã®ããŒã«ã«ããã»ã¹ã®ããã®socatãä»ããŠããããå®éã«ã¯ãä»ã®ãã®ãšåãããã«
ç§å¯ã«é¢é£ããŠããdockerbuildãã¯ç¢ºãã«ããªãèãã§ãã
å®ã¯ãDocker forMacãUnixãã¡ã€ã³ãå
¬éã§ããªãããšãå¿ããŠããŸãã
osxãã¹ãã®ãœã±ãããã³ã³ããã«æ¥ç¶ããããšã§ãããã«å€ãã®
ã¯ãŒã ã®çŒ¶ã
ç§ã®çŸåšã®è§£æ±ºçã¯ãCentos VMãGitHubãã·ã³ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ããå®è¡ãã
ã¯ã¬ãã³ã·ã£ã«ãå
¥ãããããã«ãŒãïŒéæšå¥šïŒããŒã«ã䜿çšããŠãã«ãããŸãã
2018幎7æ26æ¥æšææ¥ã21ïŒ49 Sameer Kumarã notifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
@darmbrust https://github.com/darmbrustã¯ããããã§ããŸããããŸããã
ã§ããèããšæããŸãããïŒ ããè¯ãæšå¥šäºé ã¯ãããŸããïŒ
ããããšãïŒâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moby/moby/issues/13490#issuecomment-408230125 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAZk5iz1kvCpZ0s65ng4TwL7LmHa9zZvks5uKitDgaJpZM4Eq021
ã
ãã®ãã°å šäœãèãã§ãã ããè¯ãæ¹æ³ã¯èŠã€ãããŸããã§ãã...äžèšã®ä»ã®ããã€ãã®ã¢ãããŒãããããŸãããä»ã®ãã¹ãŠã®å®å šãªã¢ãããŒãã§ã¯ãæ å ±ãç»åã«ãã£ãŒãããããã«å°ããªhttpãµãŒããŒãç«ã¡äžããå¿ èŠããããšæããŸãã èãã¯å°ãªããããããŸããããããè€éã§ãããå€ãã®ããŒã«ãããå€ãã®å¯åéšåããããŸãã
誰ãããè¯ãã解決çãèŠã€ãããã©ããã¯ããããŸãã...ç§ãã¡ã¯çãDockerã®äººã ãããã«ã€ããŠäœããããã®ãåŸ ã£ãŠããŸã...ãã®ãã°ã¯2015幎ã«æžãããã®ã§ãæ¯ãæ¢ããªãã§ãã ããããŸã ããŒãããããææ¡ããŠããŸãããã解決çã¯ã¯ããã«å°ãªãã§ãã
ããã¯ãšãŠãã·ã³ãã«ã§æçœã§ãããªã¥ãŒã ã®ããŠã³ããå¯èœã«ããŸãïŒãã¡ã€ã«ãŸãã¯
ãã£ã¬ã¯ããªïŒãã«ãäžã«ã³ã³ããã«ã
ããã¯æè¡çãªå¶éã§ã¯ãªããç§å¯ãèš±å¯ããªããšãã決å®ã§ã
ã®åäœãç¶æããããã«-ãã§ãã¯ã¢ãŠãããã«ãã®å®è¡ãåãå
¥åãåã
åºåããã£ãã·ã¥ãç¡å¹ã«ããå Žåã¯ãã«ãåŒæ°ãå€æŽããŸãã
åé¡ã¯ãæœè±¡åããŸããŸãæŒãããããªã£ãŠããããšã§ã
ããããçš®é¡ã®åä»ã§å®å
šã§ãªãããã¯ã䜿çšããŠãç§å¯ããååŸãã人ã
ãš
ã³ã³ããã«ã
ãã¥ãŒã¹ãã©ãã·ã¥ãããŒã«ã«ãã¹ãäžã§ãTCPçµç±ã§SSHããŒãªã³ã°ãå
¬éãã
å®å
šã§ãã©ã¡ããç°å¢å€æ°ãä»ããŠã¯ã¬ãã³ã·ã£ã«ãæž¡ããŠããŸããïŒãã³ããå®è¡
psããŸãã¯/ procãã¡ã€ã«ã·ã¹ãã ã®ããŒã¯ïŒãã³ãã³ãåŒæ°ãããã³ç°å¢å€æ°ã¯ãã¹ãŠãäžçäžã«å
¬éãããŠããŸãã
golangã³ãŒãã®éçºè
ã«ãšã£ãŠãããã¯ã³ããŒã¢ã³ãããŒã¹ãã§ãããããåŸæ¥ã¯åé¡ã«ãªããŸããã§ããã
äŸåé¢ä¿ç®¡çããŒã«ã䜿çšããã®ã§ã¯ãªãããããžã§ã¯ããžã®äŸåé¢ä¿ããgolangéçºè
ã¯ãã®ãã©ã¯ãã£ã¹ãããã³ããŒããšåŒã³ãŸãã
ãã«ãã·ã¹ãã ãååšããä»ã®ãšã³ã·ã¹ãã ã§äœæ¥ããŠãã人ã®ããã«
GitããŸãã¯èªèšŒãå¿
èŠãšãããªããžããªããäŸåé¢ä¿ããã§ããããããšã¯ã倧ããªåé¡ã§ãã
ã®ç·ã«æ²¿ã£ãŠã©ããã«ã¹ã¿ãŒãã¢ããã«ãŒã«ããããšç¢ºä¿¡ããŠããŸãã
ããŠãŒã¶ãŒã補åãã©ã®ããã«ããŸãã¯ãªã䜿çšããããç¥ã£ãŠãããšæã蟌ãŸãªãã§ãã ãããã
2018幎7æ26æ¥æšææ¥ã22ïŒ00 Dan Armbrustã notifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
ãã®ãã°å šäœãèãã§ãã ç§ã¯ããè¯ãæ¹æ³ãèŠã€ããŠããŸãã...ãããŸã
äžèšã®ä»ã®ããã€ãã®ã¢ãããŒãã§ãããä»ã®ãã¹ãŠã®å®å šãªã¢ãããŒãã ãšæããŸã
æ å ±ãã«ãã£ãŒãããããã«å°ããªhttpãµãŒããŒãç«ã¡äžããå¿ èŠããããŸã
ç»åã å€åèãã¯å°ãªãã§ãããããè€éã§ãããå€ãã®ããŒã«ãããæåçã§ã
éšåã誰ãããè¯ãã解決çãèŠã€ãããã©ããããããªã...ç§ãã¡ã¯çç«ã¡åŸçããŠãã
Dockerã®äººã ãããã«ã€ããŠäœããããã®ãåŸ ã£ãŠããŸã...
ãã®ãã°ã¯2015幎ã«äœæãããŠä»¥æ¥ã圌ãã¯ææ¡ããããŠããŸããã
ããŒããããã¯ãŸã ã§ããã解決çã¯ã¯ããã«å°ãªãã§ããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/moby/moby/issues/13490#issuecomment-408233258 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAZk5nvbBTj4BAv5TtELNIHhJN8mU0Ctks5uKi38gaJpZM4Eq021
ã
@binarytemple Docker / mobyã«åãçµãã ããšã®ãã人ã¯èª°ã§ãïŒãã®èåŸã«ãããšã³ãžãã¢ã®ããã«ïŒãåé¡ãäœã§ããããæ£ç¢ºã«ç¥ã£ãŠãããããã«çŽé¢ããããšãããããŸãã
ããªã¥ãŒã ã¯ãããèªäœãä¿¡ããããªãã»ã©ãªãŒã¯ã®å€ããœãªã¥ãŒã·ã§ã³ã§ãã
ã³ã¡ã³ãã¹ããªãŒã ã§å°ãèšåãããããããåççãªæ¹æ³ã§è§£æ±ºããããšããææ¡ããããŸãïŒhttps://github.com/moby/moby/issues/33343ïŒ
ããã§ã®äž»ãªããšã¯ããããŸããŸæ©èœããæœè±¡åãã§ã¯ãªãããæ£ãããæœè±¡åãæäŸããããšã§ã...ãã¡ãããããã¯ããã®å Žåã ãã§ãªããå€ãã®äººã«ãšã£ãŠèŠçã§ããããšãç§ãã¡ã¯ç¥ã£ãŠããŸãã
æè¿ããã«ããŒã§å€ãã®äœæ¥ãè¡ãããŠããŸãããããã¯å¿
ããã衚瀺ãããŠããããã§ã¯ãããŸãããããã®åãçµã¿ã®ææã¯ä»åŸæ°ãæã§çŸãå§ããŸãã
ãŸããDocker 18.06ã«ã¯ã httpsïŒ//github.com/moby/buildkitã«åºã¥ã代æ¿ã®ãã«ããŒå®è£
ãä»å±ããŠã
ãããã¯ã©ã®ããã«ç§ãå©ããŸããïŒããšæããããããŸããã Buildkitã¯ãDockerãã«ããŒã§ã¯ããã«æè»ã«ãªãããšãå¯èœã«ããå€ãã®äœã¬ãã«ã®ããªããã£ããæäŸããŸãã ç¬èªã®ãã«ãããŒãµãŒïŒæ¡åŒµãããDockerfileããŒãµãŒããå®å
šã«ç°ãªããã®ãŸã§äœã§ãããŸããŸããïŒãæäŸã§ããããã«ããããšããã§ããŸãã ããŒãµãŒã¯ãDockerfileãã®äžéšã«æå®ãããŠããããã¡ã€ã«ã®è§£æã«äœ¿çšããä»»æã®ç»åã§ãã
ä»ããäœããèŠããå Žåã¯ãbuildkitèªäœã䜿çšããŠãä»æ¥ãããå®è¡ã§ããŸããããã¯ãã³ã³ãããŒåããããã®ã®äžã«é 眮ãããã«ã¹ã¿ã çµ±åãéåžžã«è¿ éã«æ§ç¯ã§ããŸãã
ã·ãŒã¯ã¬ããããŠã³ãã®ãµããŒããhttps://github.com/moby/buildkit/pull/522ã®buildkitã«è¿œå ãããŸããã ãããã¯å³å¯ã«tmpfsã«è¡šç€ºããããã«ããã£ãã·ã¥ããé€å€ãããæ§æå¯èœãªããŒã¿ãœãŒã¹ã䜿çšã§ããŸãã dockerfileæ§æã§å ¬éããPRã¯ãŸã ãããŸããããåçŽãªè¿œå ã§ããå¿ èŠããããŸãã
ã·ãŒã¯ã¬ããã䜿çšããŠã€ã¡ãŒãžãäœæããã«ã¯ã2ã€ã®ãœãªã¥ãŒã·ã§ã³ããããŸãã
å€æ®µéãã«ãïŒ
FROM ubuntu as intermediate
ARG USERNAME
ARG PASSWORD
RUN git clone https://${USERNAME}:${PASSWORD}@github.com/username/repository.git
FROM ubuntu
# copy the repository form the previous image
COPY --from=intermediate /your-repo /srv/your-repo
次ã«ïŒ docker build --build-arg USERNAME=username --build-arg PASSWORD=password my-image .
ã€ã¡ãŒãžãã«ããŒã®äœ¿çšïŒ docker-build-with-secrets
@BenoitNorrinç³ãèš³ãããŸãããããã®ãã¹ã¯ãŒãããã¹ãã·ã¹ãã äžã®ãã¹ãŠã®ããã»ã¹ã«å ¬éããŸããã Unixã»ãã¥ãªãã£101-ã³ãã³ãåŒæ°ãšããŠã·ãŒã¯ã¬ãããå ¥ããªãã§ãã ããã
ã¯ãããã ããã»ãã¥ãªãã£ãå°ãéèŠã§ãªã䜿çšæ³ãããã€ããããŸãã
ãããå¯äžã®åé¡ã§ãã@binarytempleã®å Žåããã©ã°docker image build --args-file ./my-secret-file
ãè¿œå ããã ãã§ããã®åé¡å
šäœãç°¡åã«ä¿®æ£ã§ããã¯ãã§ãã ïŒèãïŒ
@yajoã¯ãããããããŸãããã¯ãã
æ®å¿µãªããããããããã³ä»ã®å€ãã®ãã±ããã§èšåãããŠããåé¿çã®ã»ãšãã©ã¯ãçµæã®ã€ã¡ãŒãžã«ç§å¯ãå ¬éããããã€ã³ã¹ããŒã«äžã«ã§ã¯ãªãã³ã³ãã€ã«æã«ã®ã¿äŸåé¢ä¿ãå¿ èŠãªç¹å®ã®èšèªã§ã®ã¿æ©èœããŸãã
@binarytempleã¯æ±ºããŠçºçããŸãããã
æ倧ã®åé¡ç¹ã¯ç§ã«ãšã£ãŠç§å¯ã®ããŒããŒã·ã§ã³ã§ã
ã·ãŒã¯ã¬ãããšãµãŒãã¹ã®äŸåé¢ä¿ã®ã°ã©ããç¶æããåãµãŒãã¹ã2åæŽæ°ããå¿ èŠããããŸãïŒå ã®ã·ãŒã¯ã¬ããåã«æ»ãããïŒ
ãµãŒãã¹ããã·ãŒã¯ã¬ãããäžèŠ§è¡šç€ºããã®ã¯ç°¡åã§ã¯ãªãããã§ãïŒ docker service inspect --format='{{.Spec.TaskTemplate.ContainerSpec.Secrets}}' <some_service>
äœåºŠãè©ŠããåŸããããããŸããïŒã docker secret inspect <secret_name>
ãããµãŒãã¹ã®äŸåé¢ä¿ãäžèŠ§è¡šç€ºããããšã圹ç«ã¡ãŸãã ã ããç§ã¯ä»ã®ãšãããã®ïŒããããã®ïŒã°ã©ããæåã§ç¶æããŠããŸãã
docker service updateã³ãã³ãã§ããã©ã«ãã®/run/secrets/<secret_name>
ã§ãªãå Žåã¯ãã·ãŒã¯ã¬ããã®å®å
ãæå®ããå¿
èŠããããŸã
ã·ãŒã¯ã¬ãããããŒããŒã·ã§ã³ããç°¡åãªæ¹æ³ãæãã§ããŸã
@caubããã«ããã€ãã®CLIãã«ãããããŸãïŒ
ãã©ãŒãããã«é¢ããDockerããã¥ã¡ã³ãã¯ãæ®ãã®æ€æ»ãã©ãŒããããäœæããã®ã«åœ¹ç«ã¡ãŸãã
docker service inspect --format='{{range .Spec.TaskTemplate.ContainerSpec.Secrets}}{{println .SecretName}}{{end}}'
ããã«ããããµãŒãã¹å ã®ãã¹ãŠã®ã·ãŒã¯ã¬ããåãäžèŠ§è¡šç€ºãããŸãã ååãšIDã®äž¡æ¹ãå¿ èŠãªå Žåã¯ã次ã®ããšãã§ããŸãã
docker service inspect --format='{{range .Spec.TaskTemplate.ContainerSpec.Secrets}}{{println .SecretName .SecretID}}{{end}}' nginx
ç§ã¯åžžã«CI / CDïŒãµãŒãã¹æŽæ°ã³ãã³ãïŒãŸãã¯ã¹ã¿ãã¯ãã¡ã€ã«ã«ãã¹ãããŒãã³ãŒãããŠããã®ã§ãããŒããŒã·ã§ã³ã§ãã®åé¡ã¯çºçããŸããã
ã©ãã«ã䜿çšãããšãã¹ã¿ãã¯ãã¡ã€ã«ã䜿çšããŠããªãå Žåã«CI / CDèªååã§é©åãªã·ãŒã¯ã¬ãããèå¥ã§ããŸãïŒã·ãŒã¯ã¬ããåã¯å¿ èŠãããŸãããã·ãŒã¯ã¬ããåã¯æ¯åç°ãªããŸãïŒã
docker build --secret
ãã€ãã«Docker18.09ã§å©çšå¯èœã«ãªããŸããhttps://medium.com/@tonistiigi/build-secrets-and-ssh-forwarding-in-docker-18-09-ae8161d066
@thaJeztahãã®åé¡ã解決ããæºåã¯ã§ããŠããŸããïŒ
Dockerã®å€ãããŒãžã§ã³ã§ã¯ããã«ãã³ãã³ãã®åã«ã·ãŒã¯ã¬ãããã³ããŒããŠãã«ãã¹ããŒãžãã«ãã䜿çšããããšãå®è¡å¯èœãªãªãã·ã§ã³ã§ãããïŒ
`` `
ãã«ããšããŠã®Debianãã
ã³ããŒ./secret.conf/ path / on / image /
build.shãå®è¡ããŸã
..ã
Debianãã
COPY --from = build..ã
@ andriy-fã¯ããããªããããéããããã¯æ©èœããŸãã
build
ã¹ããŒãž/ã·ãŒã¯ã¬ãããæçµã€ã¡ãŒãžã®ã芪ããšããŠååšããã¹ããŒãžã䜿çšããŸãbuildkitããã«ããŒãšããŠäœ¿çšãããšãã«ãã«ãæéã®ç§å¯ãå¯èœã«ãªããŸããã ãã¡ãã®ããã°æçš¿ãåç §ããŠãã ããhttps://medium.com/@tonistiigi/build-secrets-and-ssh-forwarding-in-docker-18-09-ae8161d066
ããã³ããã¥ã¡ã³ãã https://docs.docker.com/develop/develop-images/build_enhancements/
ã·ãŒã¯ã¬ããã«äœ¿çšãããRUN --mount
ãªãã·ã§ã³ã¯ãããã«ããã©ã«ãã®ïŒå®å®ããïŒDockerfileæ§æã«ç§»è¡ããŸã
ããããšã@thaJeztahããå°ãæãäžããŠãæçš¿çŽåŸã«ãã®èšäºãèŠã€ããŸããïŒä»¥åã®æçš¿ã¯åé€ãããŸããïŒã å床ãæè¬ããŸãïŒ
ãããã ããã§ããã«ãæéã®ç§å¯ã®è³ªåã¯çµããã§ãã ã©ã³ã¿ã€ã /éçºæéïŒOS Xã§ã¯sshïŒã«äœããããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
話é¡ããå€ããŠããããšã¯ç¥ã£ãŠããŸããããã®åé¡ãã»ãŒ1幎éç¶ããŠããããšã«æ°ä»ãã人ã¯ããŸããïŒ ææ¥ã¯ãã®èšå¿µæ¥ã§ãã ð