Postgresã¯ãçŸåšå©çšå¯èœãª ããããªã¬ãŒã·ã§ãã«ãã«ãã¢ãã«ããŒã¿ããŒã¹ã®1ã€ã§ã ã ããã¯ãéèŠãªããŒã¿ããšã³ããŠãŒã¶ãŒã«çŽæ¥æäŸããããAPIãä»ããŠå¥ã®ã¢ããªã±ãŒã·ã§ã³ãä»ããŠæäŸããããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã匷åããããã«èšèšãããŠããŸãã äžè¬ç㪠Web ãµã€ãã¯ãã®æåã®äŸã«ããé©åããŸããã財åã¢ã㪠(PayPal ãªã©) ã¯éåžžãAPI ã䜿çšããŠèŠæ±ãåŠç GET ãŸã㯠POST ããŒã¿ããŒã¹åããŸããÂ
Postgres ã®ãªããžã§ã¯ããªã¬ãŒã·ã§ãã«æ§é ãšäžŠè¡æ§ ã¯ãMySQL ã®ãããªä»£æ¿ææ®µãããåªããŠããŸãã 客芳çã«æé©ãªããŒã¿ããŒã¹ãã¯ãããžãŒã¯ãããŸããããæ¡åŒµæ§ãããŒã¿ã®æŽåæ§ããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ãéèŠããå ŽåãPostgresã¯åªããŠããŸãã æ¡åŒµæ§ãé«ããè€éãªæšæºããŒã¹ã® SQL ã¯ãšãªããµããŒãããŸããÂ
Postgres Docker Official Image (DOI) ã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã«åãããŠç¹å¥ã«èª¿æŽããã Postgres ã³ã³ãããäœæã§ããŸãããã®ã€ã¡ãŒãžã¯ãå€ãã®ã³ã¢ ã»ããã¢ãã ã¿ã¹ã¯ãåŠçããŸãã ã³ã³ããåãšPostgres DOIã«ã€ããŠèª¬æããéå§æ¹æ³ã瀺ããŸãã
ãã®ãã¥ãŒããªã¢ã«ã®å 容:
- ãªãPostgresãã³ã³ããåããå¿ èŠãããã®ã§ãã?Â
- Postgresããã«ãŒã®å ¬åŒã€ã¡ãŒãžã¯äœã§ãã?
- ããã«ãŒã§ãã¹ãã°ã¬ã¹ãå®è¡ããæ¹æ³
- Postgresã€ã¡ãŒãžãæ¡åŒµãã
- éèŠãªæ³šæäºé ãšããŒã¿ã¹ãã¬ãŒãžã®ãã³ã
- ä»ããæ¬¡ã®Postgresãããžã§ã¯ããã¹ã¿ãŒã
ãªãPostgresãã³ã³ããåããå¿ èŠãããã®ã§ãã?Â

PostgresããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã¯ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãšäžç·ã«å®è¡ã§ãããããã³ã³ããåã¯å€ãã®å Žåæçã§ãã ããã«ãããå¿ èŠãªå Žæã«Postgresãã¹ãã³ã¢ããããŠãããã€ããã®ãã¯ããã«éããªããŸãã ãŸããã³ã³ãããŒåã«ãã£ãŠãããŒã¿ãããŒã¿ããŒã¹ ã¢ããªã±ãŒã·ã§ã³ããåé¢ãããŸãã ã¢ããªã±ãŒã·ã§ã³ã«é害ãçºçããå ŽåãããŒã¿ãå±å®³ããä¿è·ããªããå¥ã®ã³ã³ãããŒãç°¡åã«èµ·åã§ããŸããÂ
ããã¯ãPostgresãããŒã«ã«ã«ã€ã³ã¹ããŒã«ãã远å ã®æ§æãå®è¡ããç¬èªã®ããã¯ã°ã©ãŠã³ãããã»ã¹ãéå§ãããããç°¡åã§ãã ãã®ãããªã¯ãŒã¯ãããŒã¯äœåãªæéãããããããæ·±ãæè¡çç¥èãå¿ èŠãšããå€åããã¢ããªã±ãŒã·ã§ã³èŠä»¶ã«ããŸãé©å¿ããŸããã ãã®ãããDockerã³ã³ããã¯èŠªãã¿ããããè¿ éãªéçºã«åãããŠèª¿æŽãããŠããŸãã
Postgresããã«ãŒã®å ¬åŒã€ã¡ãŒãžã¯äœã§ãã?
ä»ã® Docker ã€ã¡ãŒãžãšåæ§ã«ãPostgres Docker å ¬åŒã€ã¡ãŒãžã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã«å¿ èŠãªãã¹ãŠã®ãœãŒã¹ ã³ãŒããã³ã¢äŸåé¢ä¿ãããŒã«ãããã³ã©ã€ãã©ãªãå«ãŸããŠããŸãã Postgres DOIã¯ãããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã«ããŒã¿ã®åäœãšæäœæ¹æ³ãæç€ºããŸãã äžæ¹ãPostgres ã³ã³ãããŒã¯ããã®æšæºã€ã¡ãŒãžã®å®è¡äžã®ã€ã³ã¹ã¿ã³ã¹ã§ãã
å ·äœçã«ã¯ãPostgresã¯æ¬¡ã®ãŠãŒã¹ã±ãŒã¹ã«æé©ã§ãã
- ã¢ããªã±ãŒã·ã§ã³ãžã® Docker å ±æããªã¥ãŒã ã®æ¥ç¶
- éçºäžã®ã¹ãã¬ãŒãžãœãªã¥ãŒã·ã§ã³ã®ãã¹ã
- æ°ããããŒãžã§ã³ã®ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãŸãã¯Postgresèªäœã«å¯ŸããŠããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ããã¹ããã
PostgreSQL Docker Community ã¯ãã®ã€ã¡ãŒãžãç¶æããŠããããã®åºç¯ãªé åã®ããã« Docker Hub ã«è¿œå ããŸããã
Postgresã³ã³ãããæ¬çªç°å¢ã«ãããã€ã§ããŸãã?
ã¯ãïŒãã®çãã«ã¯ããã€ãã®æ³šæç¹ããããåæã«å®è¡ããã³ã³ããã®æ°ã«ãã£ãŠç°ãªããŸããÂ
æ¬çªç°å¢ã§Postgreså ¬åŒã€ã¡ãŒãžã䜿çšããããšã¯å¯èœã§ãããDocker Postgresã³ã³ããã¯ããŒã«ã«éçºã«æé©ã§ãã ããã«ãããDocker Compose ãªã©ã®ããŒã«ã䜿çšããŠããµãŒãã¹ããŸãšããŠç®¡çã§ããŸãã è€æ°ã®ããŒã¿ããŒã¹ã³ã³ãããå€§èŠæš¡ã«ããããããå¿ èŠã¯ãªããããã¯å°é£ãªå ŽåããããŸããÂ
æ¬çªç°å¢ã® Postgres ã³ã³ãããŒãèµ·åãããšããããšã¯ãKubernetes ã®ãããªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã䜿çšããŠçšŒåç¶æ ãç¶æããããšãæå³ããŸãã ãŸããDockerã®è£œåãè£å®ããããã«ãµãŒãããŒãã£ã®ã³ã³ããŒãã³ããå¿ èŠã«ãªãå ŽåããããŸãã ãã ããKubernetesã«æ £ããŠããå Žåã¯ã絶察ã«ããã詊ããŠã¿ãããšãã§ããŸããArctypeã®Shanika Wickramasinghe㯠ããã®ããã®1ã€ã®æ¹æ³ãå ±æããŠããŸãã
ãããã®çç±ãããå°æ°ã®ã³ã³ããã§æ¬çªãã¹ããå®è¡ã§ããŸãã ãã ãããã以äžã®å±éãªãã·ã§ã³ã«ã€ããŠã¯ã忀èšããããšããå§ãããŸãã
ããã«ãŒã§ãã¹ãã°ã¬ã¹ãå®è¡ããæ¹æ³
ãŸãã ææ°ã®Dockerãã¹ã¯ããããªãªãŒã¹ãããŠã³ããŒãããŠã€ã³ã¹ããŒã« ããŸãã Docker Desktop ã«ã¯ãDocker CLIãDocker Composeãããã³è£è¶³éçºããŒã«ãå«ãŸããŠããŸãã äžæ¹ãDocker ããã·ã¥ããŒã (Docker Desktop ã® UI ã³ã³ããŒãã³ã) ã¯ãã€ã¡ãŒãžãšã³ã³ãããŒã®ç®¡çã«åœ¹ç«ã¡ãŸããÂ
ãã®åŸãPostgresãããã«ã©ã€ãºããæãæ¥ãŸãã!
ã¯ã€ãã¯ãã«ã³ãã³ããå ¥åãã
Postgresããã«ãŒã®å
¬åŒã€ã¡ãŒãžããã«ããããšã¯ãå§ããããã®æéã®æ¹æ³ã§ãã ã¿ãŒããã«ã§ãDocker Hub ããææ°ã® Postgres ããŒãžã§ã³ãååŸããããã«å
¥åããŸã docker pull postgres ãÂ
ãŸãã¯ãç¹å®ã®ã¿ã°ã§å¥œã¿ã®ããŒãžã§ã³ãåºå®ããããšãã§ããŸãã éåžžããã³çã㯠Dockerfiles ã«é¢é£ä»ããããŸãããæŠå¿µã¯åºæ¬çãªãã«èŠæ±ã«äŒŒãŠããŸããÂ
ããšãã°ãå¿
èŠã«å¿ã㊠postgres v14.5 ã³ãã³ã docker pull postgres:14.5ãå
¥åããŸããäžè¬ã«ãç¹å®ã®ããŒãžã§ã³ã® Postgres ã䜿çšããããšããå§ãããŸãã ããŒãžã§ã³ã¯ :latest æ°ããPostgresãªãªãŒã¹ããšã«èªåçã«å€æŽããããããã®æ°ããããŒãžã§ã³ãé倧ãªå€æŽãè匱æ§ãå°å
¥ãããã©ãããç¥ãã®ã¯å°é£ã§ããÂ
ã©ã¡ãã®æ¹æ³ã§ããDockerã¯Postgresã€ã¡ãŒãžãããŒã«ã«ã«ãã·ã³ã«ããŠã³ããŒãããŸãã CLI ã䜿çšããããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ãã«ãå®äºãããšã端æ«ããéç¥ãããŸãã ããã¯ãDockerãã¹ã¯ãããå
ã§ç¢ºèªããããšãã§ããŸãã å·ŠåŽã®ãµã€ãããŒããã[ ç»å] ã¿ããã¯ãªãã¯ããã¡ã€ã³ãŠã£ã³ããŠã«è¡šç€ºããããªã¹ããã¹ãã£ã³ããŸãã Docker ãã¹ã¯ãããã«ã¯ã355.45 MB ã®ç»åã衚瀺ãããŸã postgres ã

Postgresã¯ãDocker Hubã§æãã¹ãªã ãªäž»èŠãªããŒã¿ããŒã¹ã€ã¡ãŒãžã®1ã€ã§ãã ãã ã alpine ãç»åãµã€ãºãããã«çž®å°ããåºæ¬ããã±ãŒãž(ããåçŽãªãããžã§ã¯ãã«æé©)ãå«ããããã®ããªã¢ã³ããå©çšã§ããŸãã ã¢ã«ãã€ã³ã®ã¡ãªããã®è©³çްã«ã€ããŠã¯ã æè¿ã®Dockerå
¬åŒã€ã¡ãŒãžã®èšäºãã芧ãã ããã
次ã«ãæ°ããã€ã¡ãŒãžãã³ã³ãããŒãšããŠå®è¡ããå Žåã¯ã©ãã§ããããã ä»ã®å€ãã®ç»åã§ã¯ããªã¹ãå ã®ç»åã«ã«ãŒãœã«ãåãããŠè¡šç€ºãããéã[å®è¡]ãã¿ã³ãã¯ãªãã¯ããããšãã§ããŸãããPostgresã«ã¯å°ã泚æãå¿ èŠã§ãã ããŒã¿ããŒã¹ã§ãããããæ¥ç¶ãæåãããåã«ç°å¢å€æ°ãèšå®ããå¿ èŠããããŸãã ããã§ã¯ã詳ããèŠãŠãããŸãããã
Postgres ã€ã³ã¹ã¿ã³ã¹ãèµ·åãã
次ã®ã³ãã³ã docker run ãå
¥åããŠãæ°ãã Postgres ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ã³ã³ãããŒãèµ·åããŸããÂ
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
ããã«ãããåå some-postgres ã®ä»ããã³ã³ãããŒãäœæããããã¹ãŠãããã¯ã°ã©ãŠã³ãã§å®è¡ããåã«éèŠãªç°å¢å€æ°ãå²ãåœãŠãããŸãã Postgresãæ£ããæ©èœããã«ã¯ãã¹ã¯ãŒããå¿
èŠãªããããã¹ã¯ãŒããå«ãŸããŠããŸããÂ
ãã®ãã¹ã¯ãŒããæ¢ã«ãæã¡ã®å Žåã¯ãDocker ãã¹ã¯ãããå
ã§ Postgres ã³ã³ãããŒãèµ·åã§ããŸãã ç»åã®æšªã«ããåè¿°ã®[å®è¡]ãã¿ã³ãã¯ãªãã¯ããç¶è¡ããåã«[ãªãã·ã§ã³èšå®]ãã€ã³å
ã«ãã®ãã¹ã¯ãŒããæåã§å
¥åããã ãã§ãã
ãã ããPostgres ã€ã³ã¿ã©ã¯ãã£ãã¿ãŒããã« psqlãŸã㯠ã䜿çšããŠãPostgres ã«çŽæ¥ã¯ãšãªãå®è¡ããããšãã§ããŸãã
docker run -it --rm --network some-network postgres psql -h some-postgres -U postgres
psql (14.3)
Type "help" for help.
postgres=# SELECT 1;
?column?
----------
1
(1 row)
ããã«ãŒäœæã®äœ¿çš
è€æ°ã®ãµãŒãã¹ãããŒã¿ããŒã¹ç®¡çããŒã«ã䜿çšããŠããå¯èœæ§ãé«ããããDocker Composeã䜿çšãããšãã€ã³ã¹ã¿ã³ã¹ãããå¹ççã«å®è¡ã§ããŸãã 1 ã€ã® YAML ãã¡ã€ã«ã§ããµãŒãã¹ã®åäœãå®çŸ©ã§ããŸãã Postgres ã®äŸã次ã«ç€ºããŸãã
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
volumes:
- pgdata:/var/lib/postgresql/data
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
pgdata:
äž¡æ¹ã®ãµãŒãã¹ã restart: alwaysã«èšå®ãããŠããããšãããããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããŠãããšãã¯ãã€ã§ãããŒã¿ã«ã¢ã¯ã»ã¹ã§ããAdminer管çãµãŒãã¹ãåæã«ã¢ã¯ãã£ãã«ä¿ã¡ãŸãã ããã«ãããã³ã³ãããŒã«é害ãçºçãããšãæ°ããã³ã³ãããŒãããã«èµ·åããŸãã
ããšãã°ãèµ·åæã«ããã«ããŒã¿ãå¿
èŠãšãã Web ã¢ããªãå®è¡ããŠãããšããŸãã ããªãã®Dockeräœæãã¡ã€ã«ã¯ãããåæ ããã§ãããã ãµãŒãã¹ãš depends_on ãã©ã¡ãŒã¿ãŒã远å ã㊠web ããµãŒãã¹éã®ã¹ã¿ãŒãã¢ãããšã·ã£ããããŠã³ã®äŸåé¢ä¿ãæå®ããŸããèµ·åãšã·ã£ããããŠã³ã®é åºã®å¶åŸ¡ã«é¢ããããã¥ã¡ã³ãããåçšãããšãå±éãããComposeãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
services:
web:
build: .
ports:
- "80:8000"
depends_on:
db:
condition: service_healthy
command: ["python", "app.py"]
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 1s
timeout: 5s
retries: 10
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Postgres ããŒã¿ããŒã¹ãšãµããŒã ãµãŒãã¹ãèµ·åããã«ã¯ãã³ãã³ããå
¥åããŸã docker compose -f [FILE NAME] up ãÂ
ã psqlããŸãã¯Docker Composeã®ããããdocker runã䜿çšãããšãå
¬åŒã€ã¡ãŒãžã䜿çšããŠPostgresãæ£åžžã«èµ·åã§ããŸãããããã¯ããããã©ã«ããPostgresãæäœããããã®ä¿¡é Œã§ããæ¹æ³ã§ãã ãã ããããŒã¿ããŒã¹ ã¢ããªã±ãŒã·ã§ã³ã¯ããã«è©³ããæ§æã§ããŸãã
Postgresã€ã¡ãŒãžãæ¡åŒµãã
Postgres ã€ã¡ãŒãžãã«ã¹ã¿ãã€ãºãŸãã¯æ§æããæ¹æ³ã¯ãããããããŸãã ããªããå©ããããšãã§ãã4ã€ã®éèŠãªã¡ã«ããºã ã«åãçµã¿ãŸãããã
1. ç°å¢å€æ°
Postgresã®éèŠæ§ã«ã€ã㊠POSTGRES_PASSWORD ç°¡åã«è§ŠããŸããã ãããæå®ããªããšãPostgresã¯å¹æçã«å®è¡ã§ããŸããã ãã ããã³ã³ãããŒã®åäœã«åœ±é¿ãäžããä»ã®å€æ°ããããŸããÂ
POSTGRES_USERâ ã¹ãŒããŒãŠãŒã¶ãŒæš©éãæã€ãŠãŒã¶ãŒãšãåãååã®ããŒã¿ããŒã¹ãæå®ããŸãã Postgres ã¯ãããã空ã®ãšãã«æ¢å®ã®ãŠãŒã¶ãŒã䜿çšããŸããPOSTGRES_DBâ ããŒã¿ããŒã¹ã®ååãæå®ãããã空çœã®ãŸãŸã«ãããšæ¢å®å€POSTGRES_USERã«ãªããŸããÂPOSTGRES_INITDB_ARGSâåŒæ°ãéä¿¡postgres_initdbããæ©èœã远å ããŸãPOSTGRES_INITDB_WALDIRâ Postgres ãã©ã³ã¶ã¯ã·ã§ã³ ãã°çšã®ç¹å®ã®ãã£ã¬ã¯ããªãå®çŸ©ããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ã¯æäœã§ãããéåžžã¯ããŒã¿ããŒã¹ãžã®å€æŽãèšè¿°ããŸããÂPOSTGRES_HOST_AUTH_METHODâããŒã¿ããŒã¹ããŠãŒã¶ãŒãããã³ã¢ãã¬ã¹ãžã®æ¥ç¶allãå¶åŸ¡ããŸãauth-methodhostPGDATAâããŒã¿ããŒã¹ãã¡ã€ã«çšã®å¥ã®ããã©ã«ãã®å ŽæãŸãã¯ãµããã£ã¬ã¯ããªãå®çŸ©ããŸã
ãããã®å€æ°ã¯ãã¬ãŒã³ããã¹ã .env å
ã«ãããŸã ãã¡ã€ã«ã æçµçã«ãPostgresãããŒã¿ããŒã¹ãäœæããŠæ¥ç¶ããæ¹æ³ã決å®ããŸãã ç°å¢å€æ°ã®è©³çްã«ã€ããŠã¯ã GitHub Postgres å
¬åŒã€ã¡ãŒãžã®ããã¥ã¡ã³ã ãåç
§ããŠãã ããã
2.ããã«ãŒã®ç§å¯
ç°å¢å€æ°ã¯äŸ¿å©ã§ããããã¹ããšã³ã³ããã®éã§ç°å¢å€æ°ãæž¡ãããšã«ã¯ãªã¹ã¯ã䌎ããŸãã Docker ã·ãŒã¯ã¬ããã䜿çšãããšãã³ã³ãããŒã«æ¢ã«ååšãããã¡ã€ã«ãããããã®å€ã«ã¢ã¯ã»ã¹ããŠèªã¿èŸŒãããšãã§ããŸãã ããã«ãããããŒãæ¥ç¶ãä»ãã転éäžã«ç°å¢å€æ°ãã€ã³ã¿ãŒã»ãããããã®ãé²ããŸãã æ¬¡ã®ã³ãã³ã (ããã³ãã®å埩) ã䜿çšããŠãPostgres ã§ Docker ã·ãŒã¯ã¬ãããæŽ»çšã§ããŸããÂ
docker run --name some-postgres -e POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd -d postgres
æèšïŒ Docker ã·ãŒã¯ã¬ããã¯ãç¹å®ã®ç°å¢å€æ°ãšã®ã¿äºææ§ããããŸãã 詳现ã«ã€ããŠã¯ãããã¥ã¡ã³ããåç §ããŠãã ãã ã
3. åæåã¹ã¯ãªãã
ã¹ã¯ãªãããšãåŒã°ã init ãå®è¡å¯èœãªã·ã§ã«ã¹ã¯ãªãããŸãã¯ã³ãã³ãããŒã¹ .sql ãå®è¡ããŸã Postgresã postgres-data ãã©ã«ããäœæãããšãã¡ã€ã«ã ããã«ããããµãŒãã¹ãå®å
šã«çšŒåããåã«éèŠãªæäœãå®è¡ã§ããŸãã éã«ãPostgres ã¯ããã©ã«ããŒãåæåãããå Žåã postgres-data ãããã®ã¹ã¯ãªãããç¡èŠããŸãã
4. ããŒã¿ããŒã¹æ§æ
PostgresããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã¯ãµãŒããŒãšããŠæ©èœããå®è¡æ¹æ³ãå¶åŸ¡ããããšã¯æçã§ãã ããŒã¿ããŒã¹ãæ§æãããšãPostgresã³ã³ãããä»ã®ãµãŒãã¹ãšã©ã®ããã«éä¿¡ããããæ±ºãŸãã ãã§ãªããPostgresã®å®è¡æ¹æ³ãšããŒã¿ãžã®ã¢ã¯ã»ã¹æ¹æ³ãæé©åãããŸããÂ
Postgres ã§ããŒã¿ããŒã¹æ§æãåŠçããæ¹æ³ã¯ 2 ã€ãããŸãããããã®æ§æã¯ãå°çšãã¡ã€ã«å
ã§ããŒã«ã«ã«é©çšããããã³ãã³ã ã©ã€ã³ã䜿çšã§ããŸãã CLI ã¯ããšã³ããªãã€ã³ã ã¹ã¯ãªããã䜿çšããŠãDocker ã³ãã³ãã Postgres ãµãŒã㌠ããŒã¢ã³ã«æž¡ããŠåŠçããŸãã
æèšïŒ 䜿çšå¯èœãªæ§æã¯ãPostgres ã®ããŒãžã§ã³ã«ãã£ãŠç°ãªããŸãã æ§æãã¡ã€ã«ã®ãã£ã¬ã¯ããªããPostgresDockerå
¬åŒã€ã¡ãŒãžã®ããªã¢ã³ãã䜿çšããŠãã alpine ãšãã«ãããã«å€æŽãããŸãã
éèŠãªæ³šæäºé ãšããŒã¿ã¹ãã¬ãŒãžã®ãã³ã
Postgresã¯ããªããŠãŒã¶ãŒãã¬ã³ããªãŒã§ãããããã€ãã®çããããŸãã Postgres ã³ã³ãã㌠ã€ã¡ãŒãžãæäœãããšãã¯ã次ã®ç¹ã«æ³šæããŠãã ãããÂ
- Postgresãã³ã³ããå ã§ã¹ãã³ã¢ãããããšãã«ããŒã¿ããŒã¹ãååšããªãå Žåã¯ãããã©ã«ãã®ããŒã¿ããŒã¹ãäœæãããŸãã ãã®ããã»ã¹ãå±éãããŠããéããã®ããŒã¿ããŒã¹ã¯çä¿¡æ¥ç¶ãåãå ¥ããŸããã
- Docker Compose ã䜿çšããŠè€æ°ã®ãµãŒãã¹ãèµ·åããå Žåã¯ãæ¢åã®ããŒã¿ããŒã¹ãæäœããã®ãæé©ã§ãã ããããªããšãPostgresãããã©ã«ããäœæããŠããéã«èªååããŒã«ã倱æããå¯èœæ§ããããŸãã
- Postgres ã³ã³ãããŒã 64 MB ã®ã¡ã¢ãªå²ãåœãŠãè¶ ãããšãDocker ã¯ãšã©ãŒãã¹ããŒããŸãã
- ã³ãã³ããŸã㯠Docker äœæã䜿çšããŠãPostgres ã³ã³ãããŒã«ããå€ãã®ã¡ã¢ãªãå²ãåœãŠãããšãã§ããŸã
docker runã
ããŒã¿ãé©åãªå Žæã«ä¿å
ããŒã¿ã®ã¢ã¯ã»ã·ããªãã£ã¯Postgresãæ£ããæ©èœããã®ã«åœ¹ç«ã€ãããããŒã¿ãé©åãªå Žæã«ä¿åããŠããããšã確èªããå¿ èŠããããŸãã ãã®å Žæã¯ãåä»ãªåé¡ãé²ãããã«ãPostgresãšDockerã®äž¡æ¹ã«è¡šç€ºãããå¿ èŠããããŸãã å®ç§ãªã¹ãã¬ãŒãžãœãªã¥ãŒã·ã§ã³ã¯ãããŸãããã æ¬¡ã®ç¹ã«æ³šæããŠãã ãããÂ
- ãã¹ããã£ã¹ã¯(Docker管ç)ãžã®ãã¡ã€ã«ã®æžã蟌ã¿ãšå éšããªã¥ãŒã 管çã®äœ¿çšã¯ééçã§ãŠãŒã¶ãŒãã¬ã³ããªãŒã§ãã ãã ãããããã®ãã¡ã€ã«ã¯ãã³ã³ãããŒã®å€éšã®ããŒã«ãã¢ããªããã¯ã¢ã¯ã»ã¹ã§ããªãå ŽåããããŸããÂ
- ãã€ã³ã ããŠã³ãã䜿çšããŠå€éšããŒã¿ã Postgres ã³ã³ãããŒã«æ¥ç¶ãããšãããŒã¿ã®ã¢ã¯ã»ã·ããªãã£ã®åé¡ã解決ã§ããŸãã ãã ãããã£ã¬ã¯ããªãäœæããã¢ã¯ã»ã¹èš±å¯ãŸãã¯ã»ãã¥ãªãã£ãèšå®ãã責任ããããŸãã
æåŸã«ãã³ãã³ãã䜿çšããŠã³ã³ãã docker run ãèµ·åããå Žåã¯ããã¹ãããé©åãªãã£ã¬ã¯ããªãããŠã³ãããããšãå¿ããªãã§ãã ããã ãã©ã°ã¯ -v ãããå¯èœã«ããŸãã 詳现ã«ã€ããŠã¯ ãDocker ã®å®è¡ã«é¢ããããã¥ã¡ã³ã ãåç
§ããŠãã ããã
ä»ããæ¬¡ã®Postgresãããžã§ã¯ããã¹ã¿ãŒã
ç§ãã¡ãçºèŠããããã«ãPostgresDockerå ¬åŒã€ã¡ãŒãžãå©çšããããšã¯ãã»ãšãã©ã®å Žåéåžžã«ç°¡åã§ãã å€ãã®ã«ã¹ã¿ãã€ãºã䜿çšã§ãããããäœ¿ãæ £ããæ¡åŒµæ§ãªãã·ã§ã³ã調ã¹ãã ãã§æžã¿ãŸãã Postgresã¯æ¡åŒµæ©èœ( PostGISãªã©)ããµããŒãããŠãããããã«æ·±ãæ©èœã远å ããããšãã§ããŸããÂ
å šäœãšããŠãPostgresãããŒã«ã«ã§ãããã³ã°ããããšã«ã¯å€ãã®å©ç¹ããããŸãã Docker Hubã§ã¹ã€ã³ã°ããæåã® PostgresDockerå ¬åŒã€ã¡ãŒãžã ãã«ããŠå®éšãéå§ããŸãã ããŒã¿ããŒã¹ã®ã»ããã¢ããã匷åããããã®ããã«è©³çŽ°ãªæé ã«ã€ããŠã¯ã Postgres GitHub ããŒãžãåç §ããŠãã ãããÂ
èžã¿å°ãå¿ èŠã§ãã? Postgres ãæŽ»çšãããããã® Docker ã®çŽ æŽãããäœæã¢ããªã±ãŒã·ã§ã³ããã§ãã¯ããŠãã ãããÂ
- NGINXãããã·ãšPostgresããŒã¿ããŒã¹ã䜿çšããŠGoãµãŒããŒãæ§ç¯ããŸãã
- ãµã³ãã«ã® Postgres ãš pgAdmin 管çã»ããã¢ãããäœæããŸãã
- Rustããã¯ãšã³ããšPostgresããŒã¿ããŒã¹ã䜿çšããŠReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸãã
- Spring Framework ãš Postgres ããŒã¿ããŒã¹ã䜿çšã㊠Java ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã