Я пытаюсь развернуть образы докеров в среде многоконтейнеров с эластичными бобовыми стеблями. Приложение работает нормально, когда я запускаю его локально, используя 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"
}
]
}