2015-12-24 4 views
3

Если я использую команду докер-сборку создания сообщения, я получаю ошибку, которая выглядит как:Docker сочинить ошибку сборки

ERROR: Validation failed in file './docker-compose.yml', reason(s): 
Service 'php' configuration key 'expose' '0' is invalid: should be of 
the format 'PORT[/PROTOCOL]' 

Я использую последнюю версию докер и докер-Compose.

Мой докер-compose.yml имеет следующий код:

application: 
    build: code 
    volumes: 
     - ./symfony:/var/www/symfony 
     - ./logs/symfony:/var/www/symfony/app/logs 
    tty: true 
db: 
    image: mysql 
    ports: 
     - 3306:3306 
    environment: 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_DATABASE: symfony 
     MYSQL_USER: root 
     MYSQL_PASSWORD: root 
php: 
    build: php-fpm 
    expose: 
     - 9000:9000 
    volumes_from: 
     - application 
    links: 
     - db 
nginx: 
    build: nginx 
    ports: 
     - 80:80 
    links: 
     - php 
    volumes_from: 
     - application 
    volumes: 
     - ./logs/nginx/:/var/log/nginx 
elk: 
    image: willdurand/elk 
    ports: 
     - 81:80 
    volumes: 
     - ./elk/logstash:/etc/logstash 
     - ./elk/logstash/patterns:/opt/logstash/patterns 
    volumes_from: 
     - application 
     - php 
     - nginx 

Я использую Ubuntu 14,04 Не могли бы вы сказать мне, как это исправить?

+1

Включите ваш 'docker-compose.yml' – alkis

+0

как включить и где? –

+1

@Rider_BY: alkis означает, что вы должны вставить весь свой файл 'docker-compose.yml' в свой вопрос, чтобы мы могли его увидеть. – jwodder

ответ

3

Вам необходимо поместить определения портов в кавычки для коротких портов (2 цифры). Это результат характера YAML и используемого парсера в составлении докеров.

application: 
    build: code 
    volumes: 
     - ./symfony:/var/www/symfony 
     - ./logs/symfony:/var/www/symfony/app/logs 
    tty: true 
db: 
    image: mysql 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: root 
     MYSQL_DATABASE: symfony 
     MYSQL_USER: root 
     MYSQL_PASSWORD: root 
php: 
    build: php-fpm 
    expose: 
     - "9000" 
    volumes_from: 
     - application 
    links: 
     - db 
nginx: 
    build: nginx 
    ports: 
     - "80:80" 
    links: 
     - php 
    volumes_from: 
     - application 
    volumes: 
     - ./logs/nginx/:/var/log/nginx 
elk: 
    image: willdurand/elk 
    ports: 
     - "81:80" 
    volumes: 
     - ./elk/logstash:/etc/logstash 
     - ./elk/logstash/patterns:/opt/logstash/patterns 
    volumes_from: 
     - application 
     - php 
     - nginx 

Также выставлять заявление должно поставляться только с одним номером, а также указывать. Добавлены все необходимые изменения выше.