一、 说明
-
系统
Ubuntu 24.04。
-
PostgreSQL 版本
18。
-
Docker 版本
29.1.3。
-
Docker Compose 版本
v5.0.0。
二、部署
目录结构
/www/common# tree -a -L 3 $(pwd)
/www/common
├── .env
├── docker-compose.yml
├── mysql
│ ├── conf.d
│ │ └── custome.conf
│ └── data
├── nginx
│ ├── conf.d
│ │ └── python_talk.conf
│ ├── logs
│ │ ├── access.log
│ │ ├── error.log
│ │ └── python_talk
│ └── nginx.conf
├── postgres
│ └── data
└── redis
├── conf
│ └── redis.conf
└── data
└── dump.rdb
docker-compose.yml
# filename: docker-compose.yml
# 虽然新版的 docker compose 已经不推荐使用 version, 但是考虑到向后兼容性,暂保留.
version: '3'
services:
postgres:
image: postgres:18.4
container_name: postgres
restart: always
hostname: postgres
environment:
TZ: Asia/Shanghai
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # ${POSTGRES_PASSWORD} 来自于 .env 文件
ports:
- "5432:5432"
volumes:
- ./postgres/data:/var/lib/postgresql/18/docker # 从 18 开始这样设置,18之前是:/var/lib/postgresql/data
networks:
- default # 如果有多个服务,使用 default 的好处是如果 name 变化,只要改一个地方即可;如果只有一个,那么也可以直接使用自定义的 name
networks:
default:
name: backend # 这是 network 的名称
external: true # external 的意思是:是否使用外部创建的 network;如果为 True, 需要手动创建。
.env
# filename: .env.
# .env 和 docker-compose.yml 位于同一层目录
# Postgres
POSTGRES_PASSWORD=root
三、总结
工作中用 PostgreSQL 较少,这里做一个记录,Docker 部署的话重点是了解 Docker, Docker Compose 的用法,PostgreSQL 的知识用不到多少,需要了解一些新版本的设置即可。
有时候对版本不熟悉,就会看到各种写法,就会纠结用哪种,或者出现混用,导致运行不起来,让人感觉寸步难行,所以这里记录一下本人在实际工作中采用的部署,供大家参考。
欢迎搜索及关注:编程人(a_codists)
1133

被折叠的 条评论
为什么被折叠?



