2017-09-15 54 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

相關問題