docker-compse生成错误 – 不受支持的版本
我正在尝试使用postgres dockerise我的rails应用程序。 我遵循了几个在线tutoarials,但我有很多麻烦。
我也支持不起作用的公司代理
我可以dockerdocker生成–build_args并通过http代理。
我不想运行docker构build和我得到以下错误:
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version ("2.0", "2.1", "3.0", "3.1", "3.2") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
这是我的docker-compose.yml:
version: '2' services: web: build: . context: . args: - http_proxy - https_proxy - no_proxy command: bundle exec rails s -b 0.0.0.0 volumes: - .:/app ports: - "3000:3000" depends_on: - db environment: - POSTGRESQL_PASSWORD=abcd12345 db: image: postgres:9.6.2-alpine environment: POSTGRES_USER: postgres POSTGRES_DB: myappnameapp_development
我试图将版本更改为3,并将其完全删除,但总是出错。
我的第二个问题 – 当我尝试运行docker-compose来获取代理时,是否必须传入任何参数?
有任何想法吗?
您的问题是版本值中的智能报价。 使用正常的双引号或单引号
version: '2'
要么
version: "2"
而不是'
或'
。 他们不同于'
和"
编辑-1
有很less其他问题与您的撰写,参数应该是构build的一部分。 另外args应该有一个价值。 它们应该用作对象而不是数组。 所以你正确的如下
version: "3" services: web: build: context: . args: http_proxy: "192.168.0.11" https_proxy: ${HTTPS_PROXY_FROM_ENV} no_proxy: ${HTTPS_PROXY_FROM_ENV:-192.168.2.2} command: bundle exec rails s -b 0.0.0.0 volumes: - .:/app ports: - "3000:3000" depends_on: - db environment: - POSTGRESQL_PASSWORD=abcd12345 db: image: postgres:9.6.2-alpine environment: POSTGRES_USER: postgres POSTGRES_DB: myappnameapp_development
所以编写了一个如何使用环境variables来传递值的例子。 如果环境variables不可用,如何使用默认值${HTTPS_PROXY_FROM_ENV:-192.168.2.2}
你也可以build立一个特定的服务并使用下面的parameter passing它们的构build参数
docker-compose build --build-arg "http_proxy=192.168.2.2" web