用Docker compose设置Postgres并使用pgAdmin在本地连接它

343 阅读1分钟

这是一个简单的例子,我们创建一个Postgres Docker容器并使用pgAdmin连接到它。我们还将在容器启动时运行迁移。

设置

version: "3.4"

services:
  shop-postgres:
    container_name: "shop-postgres"
    image: "postgres:13.2-alpine"
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: "shop"
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "postgres"
    volumes:
      - "./init.sql:/docker-entrypoint-initdb.d/init.sql"
# init.sql

CREATE SEQUENCE IF NOT EXISTS payments_id_seq;

CREATE TABLE IF NOT EXISTS payments
(
    id INTEGER NOT NULL DEFAULT nextval('payments_id_seq'),
    uuid CHARACTER VARYING(36) NOT NULL,
    card_number CHARACTER VARYING(16) NOT NULL,
    card_cvv SMALLINT NOT NULL,
    currency CHARACTER VARYING(3) NOT NULL,
    ...
    CONSTRAINT payments_pk_id PRIMARY KEY (id),
    CONSTRAINT payments_uq_uuid UNIQUE (uuid)
);
# pgAdmin connection

host: localhost
port: 5432
user: postgres
pass: postgres