Контейнер, созданный docker-compose не видит entrypoint
Всем привет! Столкнулся с проблемой в docker-compose, что сервис api
не видит entrypoint.sh
и падает. Конкретная ошибка:
exec /app/entrypoint.sh: no such file or directory
Dockerfile для этого сервиса:
FROM ruby:3.1.0-slim
ENV LANG=C.UTF-8
WORKDIR app
RUN apt-get update && apt-get -y install build-essential libpq-dev autoconf autogen libtool
EXPOSE 3000
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY ./entrypoint.sh .
ENTRYPOINT ["/app/entrypoint.sh"]
.docker-compose.yml
:
services:
es:
image: elasticsearch:8.7.0
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms750m -Xmx750m
- xpack.security.enabled=false
db:
image: postgres:14.0-alpine
environment:
- POSTGRES_PASSWORD= ...
ports:
- 5431:5432
redis:
image: redis:7.0.11-alpine
api:
build: .
volumes:
- .:/app
ports:
- 3000:3000
environment:
- ELASTICSEARCH_URL=http://es:9200
- REDIS_URL=redis://redis:6379
command: bundle exec rails s -p 3000 -b '0.0.0.0'
depends_on:
- db
- redis
Файловая структура контейнера, создаваемого для сервиса api
:
Пробовал удалить все images, все контейнеры и все volumes, ничего из этого не помогло. Также, что странно, dockerfile не менялся с того момента, когда всё успешно запускалось. Совсем не могу понять, где косяк. Помогите, пожалуйста :(
Источник: Stack Overflow на русском