#docker #docker-compose
#docker #docker-compose
Вопрос:
нужна помощь. Я попытался настроить первый образ Docker моего проекта Django, но docker не видит мой сценарий точки входа. Сначала я начал свою композицию, sudo docker-compose up -d --build
но localhost стал пустым. Итак, я запускаю sudo docker-compose logs -f
Вот журналы.
Attaching to djangopetgeo_db_1, djangopetgeo_web_1
db_1 | 2020-12-02 18:56:07.093 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db_1 | 2020-12-02 18:56:07.093 UTC [1] LOG: listening on IPv6 address "::", port 5432
db_1 | 2020-12-02 18:56:07.102 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1 | 2020-12-02 18:56:07.138 UTC [23] LOG: database system was shut down at 2020-12-02 18:54:46 UTC
db_1 | 2020-12-02 18:56:07.150 UTC [1] LOG: database system is ready to accept connections
web_1 | Waiting for postgres...
web_1 | /usr/src/djangoPetGeo/entrypoint.sh: 7: /usr/src/djangoPetGeo/entrypoint.sh: nc: not found
Docker не видит мою точку входа, как я уже сказал. Но на этом экране вы можете видеть, что у меня entrypoint.sh внутри моего веб-приложения.
Вот мой Dockerfile.
# pull official base image
FROM python:3.8.6-slim
# set work directory
WORKDIR /usr/src/djangoPetGeo
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN apt-get update amp;amp;
apt-get install -y postgresql postgresql-contrib gcc python3-dev musl-dev libgdal-dev gdal-bin
ENV CPLUS_INCLUDE_PATH=/usr/include/gdal
ENV C_INCLUDE_PATH=/usr/include/gdal
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt --no-cache-dir
# copy project
COPY . .
ENTRYPOINT ["/usr/src/djangoPetGeo/entrypoint.sh"]
И docker-compose.yml
version: '3.7'
services:
web:
build: ./djangoPetGeo
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./djangoPetGeo/:/usr/src/djangoPetGeo/
ports:
- 8000:8000
env_file:
- ./.env.dev
db:
image: mdillon/postgis
ports:
- 5432:5432
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=8596dbPASS
- POSTGRES_DB=pet_geo_db
volumes:
postgres_data:
Кто-нибудь, помогите мне, пожалуйста.
Комментарии:
1. Он находит и запускает скрипт точки входа, но не находит инструмент поддержки
nc
(возможно, с именем «netcat»).2. Пожалуйста, поделитесь своим сценарием точки входа. Как сказал Дэвид, это 99,9% из
nc
-за того, что он не установлен в вашем образе. Попробуйте добавитьapt install -y netcat
в свой Dockerfile.3. Итак, я установил netcat, и теперь он действительно работает. Ты так сильно