2017-09-15 45 views
0

我正在尝试使用postgres dockerise我的rails应用程序。我遵循了几个在线tutoarials,但我遇到了很多麻烦。docker-compse构建错误 - 不受支持的版本

我也是落后企业代理其犯规帮助

我可以泊坞窗泊坞窗建立--build_args并传入HTTP代理。

我不想跑码头工人,撰写构建和我得到以下错误:

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. 

这里是我的搬运工,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来通过代理时,是否必须传入任何参数?

任何想法?

+0

通过他们构建的论点你试过删除版本...我意思是删除版本层并运行docker-compose.yml –

+0

如果我拿出版本,我得到这个:服务的不支持的配置选项:'web' – user3437721

+0

如果我拿出我得到的版本和服务:错误:Compose文件'./docker-compose.yml'无效,因为: Web不支持的配置选项:'depends_on – user3437721

回答

2

你是问题是版本值中的智能报价。正常使用双引号或单引号

version: '2' 

version: "2" 

和NOT 。他们是从不同和'"

编辑-1

没有与您撰写其他一些问题,ARGS应该是构建的一部分。另外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 

所以撰写具有示例演示如何使用环境变量的传递值。还如何使用默认值的情况下,环境变量不可${HTTPS_PROXY_FROM_ENV:-192.168.2.2}

您也可以建立一个特定的服务,并使用下面

docker-compose build --build-arg "http_proxy=192.168.2.2" web 
+0

好吧我复制了你的并得到了这个:错误:撰写文件'./docker-compose.yml'是无效的,因为: 不支持的config.web配置选项:'args' – user3437721

+0

让我纠正这些问题并回答你的第二部分 –

+0

感谢你的这一点,我完全复制你的,并通过我的代理与构建arg传递。现在我得到了:错误:yaml.scanner.ScannerError:在“./docker-compose”中映射值不允许在这里使用 。yml“,第5行,第11列 – user3437721

相关问题