Ubuntu не может найти файл
Ubuntu не может найти файл start-users-entrypoint.sh. Он переносится в корневую папку в Dockerfile и запускается в docker-compose. Из-за чего такое может происходить и как это исправить? Заранее спасибо.
Dockerfile
FROM python:3.11-slim-bullseye
ENV DJANGO_ENV=${DJANGO_ENV} \
# python:
PYTHONFAULTHANDLER=1 \
PYTHONUNBUFFERED=1 \
PYTHONHASHSEED=random \
PYTHONDONTWRITEBYTECODE=1 \
# pip:
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 \
# poetry:
POETRY_VIRTUALENVS_CREATE=false \
POETRY_CACHE_DIR='/var/cache/pypoetry'
# Copy only requirements, to cache them in docker layer
WORKDIR /app
COPY ./poetry.lock ./pyproject.toml /app/
# System dependencies:
RUN apt-get update && \
apt-get install --no-install-recommends -y \
build-essential gettext libpq-dev wget curl \
# Cleaning cache:
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* \
# Installing 'poetry' package manager:
&& curl -sSL https://install.python-poetry.org | python3 - \
&& export PATH=$HOME/.local/bin \
&& poetry --version \
&& poetry install --no-root --no-interaction
# Project initialization:
# RUN poetry install --no-root
# Creating folders, and files for a project:
COPY . /app/
COPY ./docker/start-users-entrypoint.sh /start-users-entrypoint.sh
# Setting up proper permissions:
RUN chmod +x /start-users-entrypoint.sh \
&& mkdir -p /app/media /app/static \
&& chmod +x /app/media/ /app/static/
WORKDIR ./src
docker-compose.yml
version: '3.9'
services:
users:
container_name: users
build:
context: ./..
dockerfile: docker/python.Dockerfile
environment:
- DJANGO_SETTINGS_MODULE
env_file:
- ../.env.prod
command: /start-users-entrypoint.sh
volumes:
- static:/app/static
- media:/app/media
restart: always
expose:
- 8000
ports:
- '8000:8000' # network_port:docker_host_port
depends_on:
- users_db
networks:
- users_db
. . .
volumes:
media:
static:
pgdata:
networks:
users_db:
start-users-entrypoint.sh
#!/bin/bash
set -euo pipefail
python manage.py collectstatic --no-input
python manage.py makemigrations
python manage.py migrate
if [[ "$DJANGO_ENV" = "prod" ]]; then
pwd
gunicorn --bind 0.0.0.0:8000 config.wsgi:application
else
python manage.py initadmin
python manage.py runserver 0.0.0.0:8000
fi
Все это чудо заводится командой
docker-compose -f docker/docker-compose.yml --env-file ./.env.prod up -d --build
Источник: Stack Overflow на русском