我如何在 CircleCI 中使用 SSL/TLS 运行 PostgreSQL?

How can I run PostgreSQL in CircleCI with SSL/TLS?

在 CircleCI 中,我想 运行 测试访问 PostgreSQL 数据库,但我想使用 SSL/TLS(使用自签名证书)连接到它。

理想情况下,它将使用默认的 CircleCI PostgreSQL 映像,运行 使用 Docker 执行器,并且不需要任何卷设置或需要将任何内容复制到容器中。

我该怎么做?

您的 .circleci/config.yml 文件中可以包含以下内容。它覆盖入口点以启动 bash,然后在 bash 中生成自签名证书和私钥,然后 运行 设置原始入口点。

version: 2
jobs:
  build:
    docker:
      - image: python:3.8.7
      - image: circleci/postgres:13.0
        environment:
          POSTGRES_PASSWORD: password
        entrypoint: bash
        command: >
          -c '
            openssl req -nodes -new -x509 -subj "/CN=localhost" -keyout server.key -out server.crt &&
            chown postgres server.key &&
            chmod 600 /server.key &&
            exec /docker-entrypoint.sh -c ssl=on -c ssl_cert_file=/server.crt -c ssl_key_file=/server.key
          '

第一个 image: 是测试 运行 的那个,在本例中它是 Python 图片,但应该可以替换为您选择的图片