2

Прилагается файл для моего докерера. Это очень простой проект с базой данных и phpmyadmin для доступа к нему.Docker-Compose Up Works, но Eb Local Run не

web: 
    build: ./docker_web/ 
    links: 
     - db 
    ports: 
     - "80:80" 
    volumes: 
     - "./docker_web/www/:/var/www/site" 
db: 
    image: mysql:latest 
    restart: always 
    volumes: 
     - "./.data/db:/var/lib/mysql" 
    environment: 
     MYSQL_ROOT_PASSWORD: ^^^^ 
     MYSQL_DATABASE: electionbattle 
     MYSQL_USER: admin 
     MYSQL_PASSWORD: ^^^^ 
phpmyadmin: 
    image: phpmyadmin/phpmyadmin 
    container_name: phpmyadmin 
    environment: 
    - PMA_ARBITRARY=1 
    restart: always 
    ports: 
    - 8081:80 
    volumes: 
    - /sessions 
    links: 
     - db 

Если я запускаю это, он отлично работает. Я создал эквивалент для Amazon Docker Run для Elastic Beanstalk, и он запускается, но по какой-то причине он не может найти том, который хранит мои сохраненные данные базы данных в папке .data.

Я пробовал изменить .data, чтобы просто данные не повезло.

Также я получаю странные ошибки при попытке сделать eb deploy

2016-09-24 19:56:10 UTC-0700 ERROR ECS task stopped due to: Essential container in task exited. (db: CannotCreateContainerError: API error (500): create ./.data/db/: "./.data/db/" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed web: phpmyadmin:) 

Я понятия не имею, как исправить эту ошибку, или почему его происходит. Есть идеи?

Упс забыл добавить свой файл amazon :).

{ 
    "AWSEBDockerrunVersion": 2, 
    "volumes": [ 
    { 
     "name": "web", 
     "host": { 
     "sourcePath": "./docker_web/www/" 
     } 
    }, 
    { 
     "name": "db", 
     "host": { 
     "sourcePath": "./data/db/" 
     } 
    } 
    ], 
    "containerDefinitions": [ 
    { 
     "name": "web", 
     "image": "197984628663.dkr.ecr.us-west-1.amazonaws.com/electionbattleonline", 
     "memory": 200, 
     "essential": true, 
     "mountPoints": [ 
     { 
      "sourceVolume": "web", 
      "containerPath": "/var/www/site", 
      "readOnly": false 
     } 
     ], 
     "links": [ 
     "db" 
     ], 
     "portMappings": [ 
     { 
      "hostPort": 80, 
      "containerPort": 80 
     } 
     ] 
    }, 
    { 
     "name": "db", 
     "image": "mysql:latest", 
     "environment": [ 
     { 
      "name": "MYSQL_ROOT_PASSWORD", 
      "value": "^^^^" 
     }, 
     { 
      "name": "MYSQL_DATABASE", 
      "value": "electionbattleonline" 
     }, 
     { 
      "name": "MYSQL_USER", 
      "value": "admin" 
     }, 
     { 
      "name": "MYSQL_PASSWORD", 
      "value": "^^^^" 
     } 
     ], 
     "portMappings": [ 
     { 
     "hostPort": 3306, 
     "containerPort": 3306 
     } 
     ], 
     "mountPoints": [ 
     { 
      "sourceVolume": "db", 
      "containerPath": "/var/lib/mysql", 
      "readOnly": false 
     } 
     ], 
     "essential": true, 
     "memory": 200 
    }, 
    { 
     "name": "phpmyadmin", 
     "image": "phpmyadmin/phpmyadmin", 
     "environment": [ 
     { 
      "name": "PMA_ARBITRARY", 
      "value": "1" 
     } 
     ], 
     "essential": true, 
     "memory": 128, 
     "links": [ 
     "db" 
     ], 
     "portMappings": [ 
     { 
      "hostPort": 8081, 
      "containerPort": 80 
     } 
     ] 
    } 
    ] 
} 
+0

Это весь составный файл выше? Разве вы не используете 'version:" 2 "'? – Alkaline

+0

Да, его весь файл, докер-сочинитель и его счетчик часть Dockerrun.aws.json –

+0

интересно, я избавился от контейнера db и теперь он дает ту же ошибку для веб-контейнера при попытке развернуть? как странно ... не нравится ли монтаж? –

ответ

2

Не используйте относительные пути.

Используйте eb local run для проверки перед развертыванием, это поможет вам решить проблемы с развертыванием. Ваш файл Dockerrun.aws.json будет преобразован в файл docker-compose.yml и начнет использовать локальную копию докера.

Вы можете найти созданный файл docker-compose.yml в каталоге проекта по пути .elasticbeanstalk/docker-compose.yml. Вы заметите, что ваши тома отсутствуют в файле конфигурации docker-compose.

Чтобы исправить это изменить тома:

"volumes": [ 
    { 
    "name": "web", 
    "host": { 
     "sourcePath": "/var/app/current/docker_web/www/" 
    } 
    }, 
    { 
    "name": "db", 
    "host": { 
     "sourcePath": "/var/app/current/data/db/" 
    } 
    } 
], 

и создать каталоги в вашем приложении, а затем «Eb локальный запуск» будет правильно преобразовать их.

eb deploy теперь должен работать правильно.

+0

Я дам этому попытку, застрял на этом все это время. –

 Смежные вопросы

  • Нет связанных вопросов^_^