Files
container/部署PostGIS.md
2026-03-02 13:33:31 +08:00

119 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 目录结构
- pgsql-gis/
- pgsql-admin/
- docker-compose.yaml
```shell
mkdir pgsql-gis pgsql-admin
sudo chown 5050 ./pgsql-admin
```
## docker-compose.yaml
```yaml
version: '3.8'
services:
# PGSQL
pgsql-gis-16:
image: postgis/postgis:16-master
container_name: pgsql-gis-16
ports:
- "35430:5432" # 替换
volumes:
- ./pgsql-gis:/var/lib/postgresql/data
environment:
POSTGRES_USER: # 替换
POSTGRES_PASSWORD: # 替换
POSTGRES_DB: # 替换
POSTGRES_INITDB_ARGS: --encoding=UTF8
restart: on-failure:3
# PG AdminHTTP
pgsql-admin:
image: dpage/pgadmin4:latest # 替换
container_name: pgsql-admin
ports:
- "18906:80" # 替换
volumes:
- ./pgsql-admin:/var/lib/pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: demo@email.com
PGADMIN_DEFAULT_PASSWORD: # 替换
PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY: 'False'
restart: on-failure:3
# PG AdminHTTPS
# pgsql-admin:
# image: dpage/pgadmin4:latest
# container_name: pgsql-admin
# ports:
# - "18907:443"
# volumes:
# - ./pgsql-admin:/var/lib/pgadmin
# - ./certs:/certs
# environment:
# PGADMIN_DEFAULT_EMAIL: demo@email.com
# PGADMIN_DEFAULT_PASSWORD: # 替换
# PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY: 'False'
# PGADMIN_ENABLE_TLS: 'True'
# PGADMIN_SERVER_CERT_FILE: /certs/server.cert
# PGADMIN_SERVER_KEY_FILE: /certs/server.key
# restart: on-failure:3
```
## 添加全文索引支持
需要从 git 克隆 zhparser 添加中文分词支持,执行 docker build 命令的目录结构长这样:
- Dockerfile
- zhparser/
```bash
git clone https://github.com/amutu/zhparser.git
```
## Dockerfile
```bash
FROM postgis/postgis:16-master
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
build-essential \
git \
libcurl4-openssl-dev \
libxml2-dev \
wget \
postgresql-server-dev-16 \
&& rm -rf /var/lib/apt/lists/*
RUN pg_config --version
WORKDIR /tmp
RUN wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 \
&& tar xjf scws-1.2.3.tar.bz2 \
&& cd scws-1.2.3 \
&& ./configure \
&& make && make install \
&& cd ..
COPY zhparser zhparser
RUN cd zhparser \
&& export PG_CONFIG=$(which pg_config) \
&& echo "Using pg_config: $PG_CONFIG" \
&& make USE_PGXS=1 \
&& make USE_PGXS=1 install \
&& cd ..
RUN rm -rf /tmp/*
WORKDIR /
```
## 编译
```bash
docker build -t pgsql-gis-fts .
```