如何在circleCI配置中更新max_connections配置?

时间:2018-10-18 02:59:57

标签: postgresql circleci circleci-2.0 circleci-workflows

我正在努力在我的circleCI配置文件中配置MAX_CONNECTIONS postgres配置。正如您在下面看到的那样,我尝试使用sed替换max_connections值,但这没有做任何事情,max_connections保持默认值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

2 个答案:

答案 0 :(得分:0)

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

我认为以下应该可行:

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

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

答案 1 :(得分:0)

继Adrian Mouat的answer之后,您可以在docker-compose文件中的命令选项中传递所有配置更改,它很干净,可以针对不同的环境生成。

services:
  postgres:
    ...  
    image: postgres:11.5
    command:
      - "postgres"
      - "-c"
      - "max_connections=1000"
      - "-c"
      - "shared_buffers=3GB"
      - "-c"
      ...