## 目录结构 - 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 # 支持全文检索的自编译镜像 #image: pgsql-gis-fts:latest 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 Admin(HTTP) 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 Admin(HTTPS) # 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 . ```