4

我正在努力MAX_CONNECTIONS在我的 circleCI 配置文件中配置 postgres 配置。正如您在下面看到sed的,我尝试使用来替换 max_connections 值,但这没有做任何事情, max_connections 保持在 default 100。我还尝试运行自定义命令(请参阅command: |下面的注释块),但这引发了以下错误并停止了 circleCI 进程:/docker-entrypoint.sh: line 100: exec: docker: not found Exited with code 127

version: 2
jobs:
  test:
    pre:
      - sudo sed -i 's/max_connections = 100/max_connections = 300/g' /etc/postgresql/9.6/main/postgresql.conf # Allow more than 100 connections to DB
      - sudo service postgresql restart
    docker:
      # Specify the version you desire here
      - image: circleci/node:8.11
      # Setup postgres and configure the db
      - image: hegand/postgres-postgis
        # command: |
        #   docker run --name hegand/postgres-postgis -e POSTGRES_PORT=$POSTGRES_PORT POSTGRES_PASSWORD=$POSTGRES_PASSWORD POSTGRES_DB=$POSTGRES_DB -d postgres -N 300
        environment:
          POSTGRES_USER: user
          POSTGRES_DB: table
          POSTGRES_PASSWORD: ""
          POSTGRES_PORT: 5432
4

2 回答 2

1

在其中指定命令-image是正确的方法。您只需要使用命令来启动 docker 容器,而是在容器内运行的容器,即,而不是CMDdockerfile 中的值。

我认为以下应该有效:

- image: hegand/postgres-postgis
    command: postgres -c max_connections=300

查看 CircleCI 配置参考:https ://circleci.com/docs/2.0/configuration-reference/#docker

于 2018-10-18T17:28:46.163 回答
0

按照 Adrian Mouat 的回答,您可以在 docker-compose 文件中传递命令选项中的所有配置更改,它非常干净且易于为不同的环境生成。

services:
  postgres:
    ...  
    image: postgres:11.5
    command:
      - "postgres"
      - "-c"
      - "max_connections=1000"
      - "-c"
      - "shared_buffers=3GB"
      - "-c"
      ...
于 2020-06-30T12:25:08.100 回答