我如何在 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 图片,但应该可以替换为您选择的图片
在 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 图片,但应该可以替换为您选择的图片