2

添付ファイルはドッキング用ファイルです。データベースとphpmyadminを使ってアクセスする非常にシンプルなプロジェクトです。Docker-Comose 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 for Elastic Beanstalkのためにequivlentを作成しましたが、それは起動しますが、何らかの理由で永続化されたデータベースデータを.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:) 

をやろうとしたときに

はまた、私は、私はこのエラーまたは、なぜその出来事を修正する方法が分からない変なエラーが出ます。何か案は?

私のアマゾンファイルを追加するのを忘れました:)。

{ 
    "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コンテナを取り除きました、そして、私は配備しようとすると、現在、Webコンテナに対して同じエラーを出しますか?どのように奇妙な...それはボリュームをマウントするのが好きではない? –

答えて

2

相対パスは使用しないでください。

ebローカル実行を使用して展開すると、展開の問題を解決するのに役立ちます。 Dockerrun.aws.jsonファイルは、docker-compose.ymlファイルに変換され、dockerのローカルコピーを使用し始めました。

生成された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

私はこれを試してみましょう、このすべてのこの時間に立ち往生しました。 –

関連する問題