Docker не смог найти каталог Gemfile или .bundle / при запуске в Elastic Beanstalk Local - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь развернуть образы докеров в среде многоконтейнеров с эластичными бобовыми стеблями. Приложение работает нормально, когда я запускаю его локально, используя docker-compose build и docker-compose up. Но когда я пытаюсь запустить файл Dockerrun.aws.json, используя eb local run, я получаю сообщение об ошибке:

 Could not locate Gemfile or .bundle/ directory
 elasticbeanstalk_app_1 exited with code 10

Моя папка для эластичного бобового стебля состоит только из файла Dockerrun.aws.json. Он выбирает образ базы данных правильно, но не удается при загрузке приложения. РЕДАКТИРОВАТЬ: я gitignoring мой файл пакета Для справки, это мои файлы:

докер-compose.yml

version: '3.2'
volumes: 
  postgres-data:
services:
  db:
    image: postgres
    volumes: 
      - postgres-data:/var/lib/postgresql/data
  webpacker:
    build: .
    env_file: 
      - '.env.docker'
    command: npm build
    volumes:
      - .:/project
    ports: 
      - '3035:3035'
  app:
    build:
      context: .
      dockerfile: Dockerfile
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/project
    ports:
      - "3000:3000"
    depends_on:
      - db

Dockerfile

FROM starefossen/ruby-node:2-8-stretch

RUN apt-get update -qq && \
    apt-get install -y nano build-essential libpq-dev && \
    gem install bundler

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

RUN apt-get install -y nodejs
RUN apt-get update && apt-get install -y yarn

RUN mkdir /project
COPY Gemfile Gemfile.lock /project/
WORKDIR /project
RUN bundle install

COPY . /project

Dockerrun.aws.json

{
  "AWSEBDockerrunVersion": 2,
  "containerDefinitions": [
  {
    "command": [
      "bundle",
      "exec",
      "rails",
      "s",
      "-p",
      "3000",
      "-b",
      "0.0.0.0"
      ],
    "essential": true,
    "image": IMAGE_DEST,
    "memory": 256,
    "mountPoints": [
      {
      "containerPath": "/project",
      "sourceVolume": "Project"
      }
    ],
    "name": "app",
      "portMappings": [
        {
        "containerPort": 3000,
        "hostPort": 3000
        }
      ]
    },
    {
      "essential": true,
      "image": "postgres",
      "memory": 256,
      "mountPoints": [
        {
          "containerPath": "/var/lib/postgresql/data",
          "sourceVolume": "Postgres-Data"
        }
      ],
    "name": "db"
    },
    {
      "command": [
        "npm",
        "build"
      ],
      "essential": true,
      "image": IMAGE_DEST,
      "memory": 256,
      "mountPoints": [
        {
          "containerPath": "/project",
          "sourceVolume": "Project"
        }
      ],
      "name": "webpacker",
      "portMappings": [
        {
          "containerPort": 3035,
          "hostPort": 3035
        }
      ]
    }
  ],
  "family": "",
  "volumes": [
    {
      "host": {
        "sourcePath": "postgres-data"
      },
      "name": "Postgres-Data"
    },
    {
      "host": {
        "sourcePath": "/project"
      },
      "name": "Project"
    }
  ]
}
...