我正在努力在我的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
答案 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"
...