我正在尝试对我的FastApi应用程序进行文档化,但是在我运行命令之后,它就会出现这个错误:
docker-compose -f local.yml up -d
有人能帮我吗?
Dockerfile
FROM python:3.6.11-alpine3.11
ARG MYSQL_SERVER
ARG POSTGRES_SERVER
ENV ENVTYPE=local
ENV PYTHONUNBUFFERED 1
ENV APP_HOME=/home/app/web
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
RUN apk update && apk add --no-cache bash
ADD /compose/scripts.sh $APP_HOME
ADD /requirements/$ENVTYPE.txt $APP_HOME
RUN chmod +x scripts.sh
RUN ./scripts.sh
RUN pip install -r /home/app/web/$ENVTYPE.txt; mkdir /log;
COPY /src/ $APP_HOME
CMD ["uvicorn", "app.main:app", "--reload", "--host", "0.0.0.0", "--port", "8080"]
local.yml文件
version: '3.7'
services:
nginx:
env_file: .env
build:
context: .
dockerfile: ./compose/local/nginx.Dockerfile
restart: always
ports:
- "${EX_PORT_NGINX:-8030}:80"
volumes:
- ./nginx/site.conf:/etc/nginx/conf.d/default.conf
core:
env_file: .env
build:
context: .
dockerfile: ./compose/local/core.Dockerfile
args:
MYSQL_SERVER: ${MYSQL_SERVER:-}
POSTGRES_SERVER: ${POSTGRES_SERVER:-}
restart: always
volumes:
- ./src:/home/app/web/
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "10"
错误:
Cannot start service core: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "uvicorn": executable file not found in $PATH: unknown
发布于 2022-06-03 23:56:34
添加到Dockerfile,ENV PATH /home/${USERNAME}/.local/bin:${PATH}
,
在RUN pip install -r /home/app/web/$ENVTYPE.txt; mkdir /log;
之前,
将${USERNAME}
替换为容器用户。
如果您不认识当前用户,请在Dockerfile中的某个位置添加RUN echo $(python3 -m site --user-base)
。然后复制该echo
的输出以替换/home/${USERNAME}/.local
。
发布于 2022-11-14 19:49:31
在我的例子中,我添加了命令poetry run
,这是可行的。
services:
api:
...
command: [
"poetry", "run",
"uvicorn",
"app:main",
"--port", "5000"
]
https://stackoverflow.com/questions/72235848
复制相似问题