【发布时间】:2021-09-01 04:01:32
【问题描述】:
我有一个 entrypoint.sh 文件,我用它来启动我的后端,不幸的是,我收到了如上标题所示的错误。
我的docker-compose.yml
version: "3.9"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
interval: 5s
timeout: 5s
retries: 5
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
backend:
build: ./backend
volumes:
- ./backend:/code
ports:
- "8000:8000"
command: entrypoint.sh
depends_on:
db:
condition: service_healthy
编辑 #1 后端 dockerfile
# syntax=docker/dockerfile:1
FROM python:3.9.6-alpine3.14
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN \
apk add --no-cache postgresql-libs && \
apk add --no-cache postgresql-client && \
apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \
python3 -m pip install -r requirements.txt --no-cache-dir && \
apk --purge del .build-deps
COPY . /code/
RUN chmod u+x ./entrypoint.sh
【问题讨论】:
-
请发布您的 docker 文件。
-
此外,
backend容器中的volumes:块将使用您主机中的内容覆盖图像的/code目录,这可能是与图像构建的完全不同的应用程序。如果 Dockerfile 执行更正文件的行尾或权限等操作,volumes:块将导致此文件丢失。您通常可以安全地删除此块。 -
添加了 dockerfile
标签: docker docker-compose