在Mac上使用Docker搭建日语环境的PostgreSQL
引言
-
- Docker に PostgreSQL コンテナを日本語環境でサクッと建てたい!
-
- PostgreSQL のバージョンは最新のバージョンにしたい!
-
- Mac で作業したい!
- AWS RDS の PostgreSQL とバージョンを合わせた PostgreSQL コンテナを建てたい!
为实现目标所需的备忘录。这是根据”Mac上使用Docker创建日语环境的MySQL8.0″来制作的PostgreSQL版本。虽然标题中提到了Mac,但是与上述MySQL版本一样,Windows几乎使用相同的步骤。唯一的区别是Docker安装程序是为Mac或Windows设计的。此外,本页面的文体和结构与上述MySQL版本保持一致。
环境
-
- Mac 10.15.1 (Catalina)
- Docker for Mac
准备工作前
-
- 安装Docker Desktop for Mac
-
- 参考URL:https://qiita.com/kurkuru/items/127fa99ef5b2f0288b81
-
- 安装Kitematic
-
- →这是一个可以通过图形界面操作Docker容器的应用程序。安装步骤可通过任务栏的Docker图标完成。
- 使用Kitematic还可以确认docker-compose配置的共享目录和端口等设置。
使用docker-compose创建一个PostgreSQL容器。
请提供一个我可以参考的网址。
-
- Docker PostgreSQLイメージを利用する
- postgres の docker hub official ページ
请参考上述内容,在日语环境下搭建PostgreSQL容器。
特别是第一个链接几乎照搬了我的参考。由于它提供了非常详细的说明,所以我认为应该参考第一个链接而不是此文章。
version: '3'
volumes: # ※ホストOSで永続化
postgres_data:
driver: 'local'
services:
postgres:
build:
context: ./postgres
dockerfile: Dockerfile
container_name: "postgres_db"
environment:
POSTGRES_PASSWORD: postgres #スーパーユーザ(postgres)のパスワード
POSTGRES_USER: test #ユーザアカウント
POSTGRES_PASSWORD: password #ユーザアカウントのパスワード
POSTGRES_DB: testDb #DB名
TZ: "Asia/Tokyo"
ports:
- 15432:5432
volumes:
- postgres_data:/var/lib/postgresql/data # ※ホストOSで永続化
- ./postgres/sql:/docker-entrypoint-initdb.d
FROM postgres:12.1
RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
ENV LANG ja_JP.utf8
上述的目录镜像如下所示。
├── docker-compose.yml
└── postgres
├── Dockerfile (上記のファイル)
└── sql (ディレクトリ)
接口确认可以使用任意的DB客户端来进行。我用的是DBeaver进行了确认。
将用于初始构建的CreateTable和Insert等SQL文件放入sql目录中。
如果不需要在宿主操作系统中持久化存储PostgreSQL文件(在容器内保留),请删除docker-compose.xml中已注释为”在宿主操作系统中持久化存储”的部分配置。
笔记
使用 MySQL 版本设置与之前描述的日语不同吗?
由于MySQL和PostgreSQL在它们各自的Docker Hub官方页面上发布的容器的Dockerfile中的语言环境设置不同。
MySQL版本的Dockerfile直接使用了基于Debian的语言环境设置,因此需要进行配置以使用日语作为语言环境。
而与此相反,PostgreSQL版本的Dockerfile已经配置了使用UTF-8,所以只需要更改语言环境即可。
我希望将AWS RDS for PostgreSQL与版本对齐。
查看Amazon RDS for PostgreSQL的常见问题,可以看到AWS RDS for PostgreSQL使用的版本是PostgreSQL 9.4、9.5、9.6、10和11。(截至本页面发布时)
因此,如果要使用上述版本,只需将Dockerfile的FROM标签部分更改为以下任选之一即可。
※此处仅作简单说明,详细信息请参阅PostgreSQL的Docker Hub官方页面。
-
- FROM postgres:9.4
-
- FROM postgres:9.5
-
- FROM postgres:9.6
-
- FROM postgres:10
- FROM postgres:11
想要删除Postgres容器的持久化卷。
可以参考Docker卷的删除,如果是本页面内的容器,可以使用以下方法进行删除。
docker volume rm postgresql_postgres_data
若要查看音量的列表,请使用以下命令。
docker volume ls