Docker ã¯ãææ°ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããCI/CD ãã€ãã©ã€ã³ãèšå®ããããã®äºå®äžã®ããŒã«ã»ããã§ããããªã³ãã¬ãã¹ãšã¯ã©ãŠãã®ã³ã³ãããŒã§ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãåºè·ãå®è¡ããã®ã«åœ¹ç«ã¡ãŸããÂ
AWS EC2 ãªã©ã®ã·ã³ãã«ãªã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããŠããå Žåã§ãããã¹ããããŠãã Kubernetes ãµãŒãã¹ã®ãããªããæŽç·Žãããã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããŠããå Žåã§ããDocker ã®ããŒã«ã»ããã¯æ°ãã BFF ã§ããÂ
ããããããŒã«ã«ããŒã.jséçºç°å¢ã¯ã©ãã§ãã? ããŒã«ã«éçºç°å¢ãã»ããã¢ããããªããããªã³ããŒãã£ã³ã°ã®ããŒãã«ã調æŽããããšã¯ãæ§ããã«èšã£ãŠãã€ã©ã€ã©ããå¯èœæ§ããããŸãã
ç¹å¹è¬ã¯ãããŸããããDockerãšãã®ããŒã«ã»ããã®å©ããåããŠãç©äºãã¯ããã«ç°¡åã«ããããšãã§ããŸãã
ç®æ¬¡:
- ããŒã«ã«ããŒã.jséçºç°å¢ãã»ããã¢ããããæ¹æ³ â ããŒã 1
- åæ æ¡ä»¶
- ã¹ããã 1: ã³ãŒããªããžããªããã©ãŒã¯ãã
- ã¹ããã 2: ã¢ããªã±ãŒã·ã§ã³ã Docker åãã
- ã¹ããã 3: ããŒã«ã©ã€ãºãããã³ã³ããã§ MongoDB ãå®è¡ãã
- ã¹ããã 4: ç°å¢å€æ°ãèšå®ãã
- ã¹ããã 5: ããŒã¿ããŒã¹æ¥ç¶ããã¹ããã
- ããŒã«ã«ããŒã.jséçºç°å¢ãã»ããã¢ããããæ¹æ³ â ããŒã 2
ããŒã«ã«ããŒã.jséçºç°å¢ãã»ããã¢ããããæ¹æ³ â ããŒã 1

ãã®ãã¥ãŒããªã¢ã«ã§ã¯ãããã³ããšã³ãã«Reactãããã€ãã®ãã€ã¯ããµãŒãã¹ã«NodeãšExpressãããŒã¿ã¹ãã¢ã«MongoDbã䜿çšããæ¯èŒçè€éãªã¢ããªã±ãŒã·ã§ã³çšã«ããŒã«ã«Node.jséçºç°å¢ãèšå®ããæ¹æ³ã«ã€ããŠèª¬æããŸãã Docker ã䜿çšããŠã€ã¡ãŒãžãæ§ç¯ããDocker Compose ã䜿çšããŠãã¹ãŠãã¯ããã«ç°¡åã«ããŸãã
ã質åããæèŠãããå ŽåããŸãã¯åã«æ¥ç¶ãããå Žåã ã³ãã¥ããã£Slack ãŸã㯠@rumplã®Twitterã§ç§ã«é£çµ¡ã§ããŸãã
åãåããïŒæ¥æ¬èªå¯ïŒ
åæ æ¡ä»¶
ãã®ãã¥ãŒããªã¢ã«ãå®äºããã«ã¯ã次ã®ãã®ãå¿ èŠã§ãã
- éçºçšã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ãããŠãã Docker ã§ãã Docker ãã¹ã¯ããããããŠã³ããŒãããŠã€ã³ã¹ããŒã«ã§ããŸãã
- Docker Hub ãã Docker ID ã«ãµã€ã³ã¢ããããŸãã
- éçºçšã³ã³ãã¥ãŒã¿ãŒã« Git ãã€ã³ã¹ããŒã«ãããŠããã
- ãã¡ã€ã«ã®ç·šéã«äœ¿çšãã IDE ãŸãã¯ããã¹ã ãšãã£ã¿ãŒã ç§ã¯VSCodeããå§ãããŸãã
ã¹ããã 1: ã³ãŒããªããžããªããã©ãŒã¯ãã
æåã«è¡ãããšã¯ãã³ãŒããããŒã«ã«éçºãã·ã³ã«ããŠã³ããŒãããããšã§ãã æ¬¡ã®gitã³ãã³ãã䜿çšããŠãããå®è¡ããŠã¿ãŸãããã
git ã¯ããŒã³ https://github.com/rumpl/memphis.git
ã³ãŒããããŒã«ã«ã«ãªã£ãã®ã§ããããžã§ã¯ãã®æ§é ãèŠãŠã¿ãŸãããã ä»»æã® IDE ã§ã³ãŒããéããã«ãŒãã¬ãã«ã®ãã£ã¬ã¯ããªãå±éããŸãã æ¬¡ã®ãã¡ã€ã«æ§é ã衚瀺ãããŸãã
âââ docker-compose.yml
âââ ããŒããµãŒãã¹
âââ ãªãŒãã£ã³ã°ãªã¹ããµãŒãã¹
âââ ãŠãŒã¶ãŒãµãŒãã¹
âââ ãšãŒããŠã€
ãã®ã¢ããªã±ãŒã·ã§ã³ã¯ãããã€ãã®åçŽãªãã€ã¯ããµãŒãã¹ãšReact.jsã§èšè¿°ãããããã³ããšã³ãã§æ§æãããŠããŸãã ãŸããããŒã¿ã¹ãã¢ãšã㊠MongoDB ã䜿çšããŸãã
éåžžããã®æç¹ã§ãMongoDBã®ããŒã«ã«ããŒãžã§ã³ãéå§ãããããããžã§ã¯ãã調ã¹ãŠãã¢ããªã±ãŒã·ã§ã³ãMongoDBãæ¢ãå ŽæãèŠã€ããŸãã æ¬¡ã«ãåãã€ã¯ããµãŒãã¹ãåå¥ã«éå§ããæ¢å®ã®æ§æãæ©èœããããšãæåŸ ã㊠UI ãèµ·åããŸãã
ãã ããããã¯éåžžã«è€éã§ã€ã©ã€ã©ããå¯èœæ§ããããŸãã ç¹ã«ããã€ã¯ããµãŒãã¹ãç°ãªãããŒãžã§ã³ã®Nodeã䜿çšããŠããŠ.jsæ§æãç°ãªãå Žåã
代ããã«ãã¢ããªã±ãŒã·ã§ã³ã Docker åããããŒã¿ããŒã¹ãã³ã³ãããŒã«é 眮ããããšã§ããã®ããã»ã¹ãç°¡åã«ããæé ã説æããŸããããÂ
ã¹ããã 2: ã¢ããªã±ãŒã·ã§ã³ã Docker åãã
Dockerã¯ãäžè²«ããéçºç°å¢ãæäŸããããã®åªããæ¹æ³ã§ãã ããã«ãããåãµãŒãã¹ãšUIãã³ã³ããã§å®è¡ã§ããŸãã ãŸããããŒã«ã«ã§éçºãã1ã€ã®dockerã³ãã³ãã§äŸåé¢ä¿ãéå§ã§ããããã«èšå®ããŸãã
æåã«ããããããšã¯ãåã¢ããªã±ãŒã·ã§ã³ããããã³ã°ããããšã§ãã ãã€ã¯ããµãŒãã¹ã¯ãã¹ãŠ Node.js ã§èšè¿°ãããŠãããåã Dockerfile ã䜿çšã§ããããããã€ã¯ããµãŒãã¹ããå§ããŸãããã
ããã«ãŒãã¡ã€ã«ã®äœæ
ã¡ã¢ãµãŒãã¹ãã£ã¬ã¯ããªã« Dockerfile ãäœæããæ¬¡ã®ã³ãã³ãã远å ããŸãã

ããã¯ãNode.jsã§äœ¿çšããéåžžã«åºæ¬çãªããã«ãŒãã¡ã€ã«ã§ãã ã³ãã³ãã«æ £ããŠããªãå Žåã¯ã å ¥éã¬ã€ãããå§ããããšãã§ããŸãã ãŸãããªãã¡ã¬ã³ã¹ ããã¥ã¡ã³ããã芧ãã ããã
ããã«ãŒã€ã¡ãŒãžã®æ§ç¯
Dockerfile ãäœæããã®ã§ãã€ã¡ãŒãžããã«ãããŸãããã ã¡ã¢ãµãŒãã¹ãã£ã¬ã¯ããªã«ããããšã確èªããæ¬¡ã®ã³ãã³ããå®è¡ããŸãã
cd notes-service
docker build -t notes-service .

ã€ã¡ãŒãžããã«ããããã®ã§ããããã³ã³ãããŒãšããŠå®è¡ããåäœããŠããããšããã¹ãããŸãããã
docker run --rm -p 8081:8081 --name notes notes-service

ãã®ãšã©ãŒãããmongodbãžã®æ¥ç¶ã«åé¡ãããããšãããããŸãã ãã®æç¹ã§ã次㮠2 ã€ã®ããšãå£ããŠããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã«æ¥ç¶æååãæå®ããŸããã§ããã
- MongoDBã¯ããŒã«ã«ã§å®è¡ãããŠããŸããã
ããã解決ããã«ã¯ãããŒã¿ããŒã¹ã®å ±æã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶æååãæäŸã§ããŸãããããŒã¿ããŒã¹ãããŒã«ã«ã§ç®¡çã§ããããã«ããéçºã«äœ¿çšããŠããååã®ããŒã¿ãå°ç¡ãã«ããå¿é ãããªãããã«ããå¿ èŠããããŸããÂ
ã¹ããã 3: ããŒã«ã©ã€ãºãããã³ã³ããã§ MongoDB ãå®è¡ãã
MongoDBãããŠã³ããŒããã代ããã«ãMongoããŒã¿ããŒã¹ãµãŒãã¹ãã€ã³ã¹ããŒã«ãæ§æãããã³å®è¡ããŸãã MongoDBçšã® Dockerå ¬åŒã€ã¡ãŒãž ã䜿çšããŠãã³ã³ããã§å®è¡ã§ããŸãã
ã³ã³ããã§MongoDBãå®è¡ããåã«ãDockerãæ°žç¶çãªããŒã¿ãšæ§æãä¿åããããã«ç®¡çã§ããããªã¥ãŒã ãããã€ãäœæããå¿ èŠããããŸãã ãã€ã³ãããŠã³ãã䜿çšãã代ããã«ãDockerãæäŸãããããŒãžãããªã¥ãŒã ã䜿çšããã®ã奜ãã§ãã ããªã¥ãŒã ã«é¢ãããã¹ãŠã®ããã¥ã¡ã³ããèªãããšãã§ããŸãã
ããã«ãŒçšã®ããªã¥ãŒã ã®äœæ
ããªã¥ãŒã ãäœæããããã«ãããŒã¿çšã« 1 ã€ãMongoDB ã®æ§æçšã« 1 ã€äœæããŸãã
ããã«ãŒããªã¥ãŒã ã¯ã¢ã³ãŽãããäœæããŸã
ããã«ãŒããªã¥ãŒã äœæmongodb_config
ãŠãŒã¶ãŒå®çŸ©ã®ããªããžã»ãããã¯ãŒã¯ã®äœæ
次ã«ãã¢ããªã±ãŒã·ã§ã³ãšããŒã¿ããŒã¹ãçžäºã«éä¿¡ããããã«äœ¿çšãããããã¯ãŒã¯ãäœæããŸãã ãã®ãããã¯ãŒã¯ã¯ãŠãŒã¶ãŒå®çŸ©ã®ããªããžãããã¯ãŒã¯ãšåŒã°ããæ¥ç¶æååãäœæãããšãã«äœ¿çšã§ããåªããDNSã«ãã¯ã¢ãããµãŒãã¹ãæäŸããŸãã
ããã«ãŒãããã¯ãŒã¯ã¯ãªãšã€ãã¢ã³ãŽãã
ããã§ãMongoDBãã³ã³ããã§å®è¡ããäžèšã§äœæããããªã¥ãŒã ãšãããã¯ãŒã¯ã«ã¢ã¿ããã§ããŸãã Docker 㯠Hub ããã€ã¡ãŒãžããã«ããããŒã«ã«ã§å®è¡ããŸãã
docker run -it --rm -d -v mongodb:/data/db -v mongodb_config:/data/configdb -p 27017:27017 --network mongodb --name mongodb mongo
ã¹ããã 4: ç°å¢å€æ°ãèšå®ãã
MongoDB ãå®è¡ãããã®ã§ãã¢ããªã±ãŒã·ã§ã³ããªãã¹ã³ããããŒããšããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ã«äœ¿çšããæ¥ç¶æååãèªèã§ããããã«ãããã€ãã®ç°å¢å€æ°ãèšå®ããå¿ èŠããããŸãã ããã¯ãdocker runã³ãã³ãã§æ£ããè¡ããŸãã
docker run \
-it --rm -d \
--network mongodb \
--name notes \
-p 8081:8081 \
-e SERVER_PORT=8081 \
-e SERVER_PORT=8081 \
-e DATABASE_CONNECTIONSTRING=mongodb://mongodb:27017/yoda_notes \
notes-service
ã¹ããã 5: ããŒã¿ããŒã¹æ¥ç¶ããã¹ããã
ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ã«æ¥ç¶ãããã¡ã¢ã远å ã§ããããšããã¹ãããŸãããã
curl --request POST \
--url http://localhost:8081/services/m/notes \
--header 'content-type: application/json' \
--data '{
"name": "this is a note",
"text": "this is a note that I wanted to take while I was working on writing a blog post.",
"owner": "peter"
}'
ãµãŒãã¹ããæ¬¡ã® JSON ãè¿ãããŸãã
{"code":"success","payload":{"_id":"5efd0a1552cd422b59d4f994","name":"this is a note","text":"this is a note that I wanted to take while I was working on writing a blog post.","owner":"peter","createDate":"2020-07-01T22:11:33.256Z"}}
ãã¹ããå®äºãããããdocker stop notes mongodbããå®è¡ããŠã³ã³ããã忢ããŸãã
ãããïŒNode.js ã®ããŒã«ã«éçºç°å¢ã® Docker åã®æåã®æé ãå®äºããŸããã ããŒãIIã§ã¯ãDocker Composeã䜿çšããŠãå ã»ã©å®è¡ããããã»ã¹ãç°¡çŽ åããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ããŒã«ã«ããŒã.jséçºç°å¢ãã»ããã¢ããããæ¹æ³ â ããŒã 2
ããŒã I ã§ã¯ãDocker ã€ã¡ãŒãžã®äœæãš Node.js ã¢ããªã±ãŒã·ã§ã³çšã®ã³ã³ãããŒã®å®è¡ã«ã€ããŠèª¬æããŸããã ãŸããã³ã³ãããŒã§ã®ããŒã¿ããŒã¹ã®èšå®ãšãããŒã«ã«éçºç°å¢ã®ã»ããã¢ããã§ããªã¥ãŒã ãšãããã¯ãŒã¯ãã©ã®ããã«åœ¹å²ãæãããã«ã€ããŠã説æããŸããã
ããŒãIIã§ã¯ãã³ã³ãã€ã«ãã¢ãžã¥ãŒã«ã®è¿œå ãã¢ããªã±ãŒã·ã§ã³ã®ãããã°ããã¹ãŠã³ã³ããå ã§è¡ãããšãã§ããéçºã€ã¡ãŒãžã®äœæãšå®è¡ã«ã€ããŠèª¬æããŸãã ããã«ãããæ°ããã¢ããªã±ãŒã·ã§ã³ãŸãã¯ãããžã§ã¯ãã«ç§»è¡ããéã®éçºè ã®ã»ããã¢ããæéãççž®ã§ããŸãã ãã®å Žåãã€ã¡ãŒãžã«ã¯ Node.js ãš NPM ãŸã㯠YARN ãã€ã³ã¹ããŒã«ãããŠããå¿ èŠããããŸããÂ
ãŸããDocker Compose ã䜿çšããŠãéçºãã·ã³äžã§å®å šãªãã€ã¯ããµãŒãã¹ ã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ã«èšå®ããŠå®è¡ããããã»ã¹ãåçåããæ¹æ³ã«ã€ããŠãç°¡åã«èª¬æããŸãã
Node.js ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ã«äœ¿çšã§ããéçºã€ã¡ãŒãžãäœæããŸãããã
ã¹ããã 1: ããã«ãŒãã¡ã€ã«ãéçºãã
éçºçšã³ã³ãã¥ãŒã¿ãŒã«ããŒã«ã« ãã£ã¬ã¯ããªãäœæããDockerfile ãéçºã€ã¡ãŒãžã«å¿ èŠãªãã®ä»ã®ãã¡ã€ã«ãä¿åããããã®äœæ¥ãã£ã¬ã¯ããªãšããŠäœ¿çšã§ããŸãã
$ mkdir -p ~/projects/dev-image
ãã®ãã©ã«ããŒã« Dockerfile ãäœæããæ¬¡ã®ã³ãã³ãã远å ããŸãã
FROM node:18.7.0
RUN apt-get update && apt-get install -y \
nano \
Vim
ãŸããnode:18.7.0 ã®å ¬åŒã€ã¡ãŒãžã䜿çšããŸãã ãã®ã€ã¡ãŒãžã¯éçºã€ã¡ãŒãžã®äœæã«é©ããŠããããšãããããŸããã ã³ã³ããå ã§ãã¡ã€ã«ããã°ããç·šéãããå Žåã«åããŠãç»åã«ããã€ãã®ããã¹ããšãã£ã¿ã远å ããã®ã奜ãã§ãã
åºæ¬ã€ã¡ãŒãžã® ENTRYPOINT ã«äŸåããã€ã¡ãŒãžã®éå§æã« CMD ããªãŒããŒã©ã€ããããããDockerfile ã« ENTRYPOINT ãŸã㯠CMD ã远å ããŸããã§ããã
ã¹ããã 2: Docker ã€ã¡ãŒãžããã«ããã
ã€ã¡ãŒãžãæ§ç¯ããŸãããã
$ docker build -t node-dev-image .
ãããŠä»ãç§ãã¡ã¯ãããå®è¡ããããšãã§ããŸãã
$ docker run -it --rm --name dev -v $(pwd):/code node-dev-image bash
bashã³ãã³ãããã³ããã衚瀺ãããŸãã ããã§ãã³ã³ãããŒå ã§ JavaScript ãã¡ã€ã«ãäœæããNode.js ã§å®è¡ã§ããŸãã
ã¹ããã 3: ã€ã¡ãŒãžããã¹ããã
次ã®ã³ãã³ããå®è¡ããŠãã€ã¡ãŒãžããã¹ãããŸãã
$ node -e 'console.log("hello from inside our container")'
hello from inside our container
ãã¹ãŠãããŸãããã°ãå®çšçãªéçºã€ã¡ãŒãžããããŸãã ããã§ãéåžžã®bashã¿ãŒããã«ã§è¡ããã¹ãŠã®ããšãå®è¡ã§ããŸãã
äžèšã® Docker ã³ãã³ãã notes-service ãã£ã¬ã¯ããªå
ã§å®è¡ãããšãã³ã³ããå
ã®ã³ãŒãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã notesãµãŒãã¹ãéå§ããã«ã¯ã/codeãã£ã¬ã¯ããªã«ç§»åããŠå®è¡ããŸã npm run startã
ã¹ããã 4: äœæã䜿çšããŠããŒã«ã«ã§éçºãã
ããŒããµãŒãã¹ãããžã§ã¯ãã¯ãããŒã¿ã¹ãã¢ãšã㊠MongoDB ã䜿çšããŸãã ããŒãIã§èŠããŠãããšæããŸãããMongoã³ã³ãããæåã§èµ·åããã¡ã¢ãµãŒãã¹ãšåããããã¯ãŒã¯ã«æ¥ç¶ããå¿ èŠããããŸããã ãŸããã¢ããªã±ãŒã·ã§ã³ãšMongoDBãåèµ·åããŠãããŒã¿ãä¿æã§ããããã«ãããã€ãã®ããªã¥ãŒã ãäœæããå¿ èŠããããŸããã
代ããã«ã1ã€ã®ã³ãã³ãã§ããŒããµãŒãã¹ãšMongoDbãéå§ããããã®äœæãã¡ã€ã«ãäœæããŸãã ãŸãããããã°ã¢ãŒãã§ããŒããµãŒãã¹ãéå§ããããã«äœæãã¡ã€ã«ãèšå®ããŸãã ãã®ããã«ããŠããããã¬ãŒãå®è¡äžã®ããŒãããã»ã¹ã«æ¥ç¶ã§ããŸãã
ä»»æã® IDE ãŸãã¯ããã¹ããšãã£ã¿ã§ããŒããµãŒãã¹ãéããdocker-compose.dev.yml ãšããååã®æ°ãããã¡ã€ã«ãäœæããŸãã 以äžã®ã³ãã³ããã³ããŒããŠãã¡ã€ã«ã«è²Œãä»ããŸãã
services:
notes:
build:
context: .
ports:
- 8080:8080
- 9229:9229
environment:
- SERVER_PORT=8080
- DATABASE_CONNECTIONSTRING=mongodb://mongo:27017/notes
volumes:
- ./:/code
command: npm run debug
mongo:
image: mongo:4.2.8
ports:
- 27017:27017
volumes:
- mongodb:/data/db
- mongodb_config:/data/configdb
volumes:
mongodb:
Mongodb_config:
ãã®äœæãã¡ã€ã«ã¯ããdocker runãã³ãã³ãã«æž¡ãããã«ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå ¥åããå¿ èŠããªããããéåžžã«äŸ¿å©ã§ãã äœæãã¡ã€ã«ã§å®£èšçã«ãããè¡ãããšãã§ããŸãã
ãããã¬ãŒãã¢ã¿ããã§ããããã«ãããŒã 9229 ãå ¬éããŠããŸãã ãŸããããŒã«ã«ãœãŒã¹ã³ãŒããå®è¡äžã®ã³ã³ããã«ãããã³ã°ããŠãããã¹ããšãã£ã¿ã§å€æŽãå ãããããã®å€æŽãã³ã³ããã§ååŸã§ããããã«ããŠããŸãã
äœæãã¡ã€ã«ã䜿çšãããã1ã€ã®æ¬åœã«åªããæ©èœã¯ããµãŒãã¹åã䜿çšããããã®ãµãŒãã¹è§£æ±ºãèšå®ãããŠããããšã§ãã ãã®çµæãæ¥ç¶æååã« "mongo" ã䜿çšã§ããããã«ãªããŸããã ãmongoãã䜿çšããã®ã¯ããããäœæãã¡ã€ã«ã§mongoãµãŒãã¹ã«ååãä»ããããã§ãã
ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŠãæ£ããå®è¡ãããŠããããšã確èªããŸãããã
$ docker compose -f docker-compose.dev.yml up --build
"âbuild" ãã©ã°ãæž¡ããŠãDocker ãã€ã¡ãŒãžãã³ã³ãã€ã«ããŠããèµ·åããããã«ããŸãã
ãã¹ãŠãããŸãããã°ãã¡ã¢ãšmongoãµãŒãã¹ããã®ãã°ã衚瀺ãããŸãã
次ã«ãAPI ãšã³ããã€ã³ãããã¹ãããŸãããã æ¬¡ã® curl ã³ãã³ããå®è¡ããŸãã
$ curl --request GET --url http://localhost:8080/services/m/notes
次ã®å¿çã衚瀺ãããŸãã
{"ã³ãŒã":"æå","ã¡ã¿":{"åèš":0,"ã«ãŠã³ã":0},"ãã€ããŒã":[]}
ã¹ããã 5: ãããã¬ãŒã«æ¥ç¶ãã
Chromeãã©ãŠã¶ã«ä»å±ã®ãããã¬ã䜿çšããŸãã ãã·ã³ã§Chromeãéããã¢ãã¬ã¹ããŒã«æ¬¡ã®ããã«å ¥åããŸãã
æŠèŠ:æ€æ»
以äžã®ç»é¢ãéããŸãã

[ããŒãå°çšã®éçºããŒã«ãéã] ãªã³ã¯ãã¯ãªãã¯ããŸãã ããã«ãããã³ã³ãããŒå ã®å®è¡äžã® Node.js ããã»ã¹ã«æ¥ç¶ãããŠãã DevTools ãéããŸãã
ãœãŒã¹ ã³ãŒãã倿ŽããŠããããã¬ãŒã¯ãã€ã³ããèšå®ããŸããããÂ
次ã®ã³ãŒãã 19 è¡ç®ã® server.js ãã¡ã€ã«ã«è¿œå ãããã¡ã€ã«ãä¿åããŸãã
server.use( '/foo', (req, res) => {
return res.json({ "foo": "bar" })
})
äœæã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããŠããã¿ãŒããã«ãèŠããšãnodemonã倿Žã«æ°ã¥ããã¢ããªã±ãŒã·ã§ã³ããªããŒãããŠããããšãããããŸãã
Chrome éçºããŒã«ã«æ»ãã20 è¡ç®ã«ãã¬ãŒã¯ãã€ã³ããèšå®ããŸãã æ¬¡ã«ã次㮠curl ã³ãã³ããå®è¡ããŠãã¬ãŒã¯ãã€ã³ããããªã¬ãŒããŸãã
$ curl --request GET --url http://localhost:8080/foo
ããŒã 20è¡ç®ã§ã³ãŒããå£ããŠããã®ãèŠãã¯ãã§ãããä»ã§ã¯éåžžãšåãããã«ãããã¬ã䜿çšããããšãã§ããŸãã 倿°ã®æ€æ»ãšç£èŠãæ¡ä»¶ä»ããã¬ãŒã¯ãã€ã³ãã®èšå®ãã¹ã¿ãã¯ãã¬ãŒã¹ã®è¡šç€ºãªã©ãããŸããŸãªããšãã§ããŸãã
çµè«
ãã®èšäºã§ã¯ãNode.js ã®ããŒã«ã«éçºç°å¢ã® Docker åã®æåã®æé ãå®äºããŸããã æ¬¡ã«ãããã«äžæ©é²ãã§ãéåžžã®ã³ãã³ãã©ã€ã³ã®ããã«äœ¿çšã§ããäžè¬çãªéçºã€ã¡ãŒãžãäœæããŸããã ãŸãããœãŒã¹ ã³ãŒããå®è¡äžã®ã³ã³ãããŒã«ãããããããã«äœæãã¡ã€ã«ãèšå®ãããããã° ããŒããå ¬éããŸããã
ããã«è©³ãã
- Node.jsèšèªã«ç¹åããã¬ã€ããã芧ãã ããã
- ä»ããå§ããŠã Docker ãã¹ã¯ããããããŠã³ããŒãããŠãã ããã
- Dockerfiles ãèšè¿°ããããã®ãã¹ã ãã©ã¯ãã£ã¹ã®è©³çްã«ã€ããŠã¯ããã¡ããåç §ããŠãã ãããÂ
- 詳现ã«ã€ããŠã¯ãDockerfiles ã§ã®ããŒã¿ç®¡çã«é¢ããããŒãžãåç §ããŠãã ããã
- Docker Desktop ãš Docker Compose ã«é¢ããå ¬åŒããã¥ã¡ã³ããã芧ãã ãããÂ
- GitHub ã§ãããžã§ã¯ãã®ã¹ã±ã«ãã³ ãµã³ãã« ããã¬ãã¥ãŒããŸãã