bimka
@bimka
Осваиваю Питон

Как исправить ошибку «Error response from daemon: No command specified»?

Пробую развернуть приложение по этому туториалу.
При запуске команды docker-compose up --build получаю ошибку: Error response from daemon: No command specified
1. Дерево проекта:
└── testapp
    ├── app
    │   ├── __init__.py
    │   ├── main.py
    │   ├── services
    │   └── static
    ├── traefic
    │   └── traefic.toml
    ├── docker-compose.yaml
    ├── Dockerfile
    └── requirements.txt

2. traefic.toml
[entryPoints]
  [entryPoints.web]
    address = ":80"
  [entryPoints.web.http]
    [entryPoints.web.http.redirections]
      [entryPoints.web.http.redirections.entryPoint]
        to = "websecure"
        scheme = "https"

  [entryPoints.websecure]
    address = ":443"

[accessLog]

[providers]
  [providers.docker]
    exposedByDefault = false

[certificatesResolvers.letsencrypt.acme]
  email = "mymail@mail.ru"
  storage= "acme.json"
  [certificatesResolvers.letsencrypt.acme.httpChallenge]
    entryPoint = "web"

3. docker-compose.yaml
#!/bin/sh

version: "3"

services:
  app:
    build: .
    #command: uvicorn app.main:app --host 0.0.0.0 --port 8000
    #restart: always
    labels:
      - traefik.enable=true
      - traefik.http.routers.app-http.rule=Host(`mydomain.ru`)
      - traefik.http.routers.app-http.tls=true
      - traefik.http.routers.app-http.tls.certresolver=letsencrypt

  traefik:
    image: traefik:v2.8
    ports:
      - 80:80
      - 443:443
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - $PWD/testapp/traefik/traefik.toml:/etc/traefik/traefik.toml
      - traefik-public-certificates:/certificates

volumes:
  traefik-public-certificates:

4. Dockerfile
FROM python:3.9

COPY .  /code/app

WORKDIR /code/app

RUN pip install -r requirements.txt

EXPOSE 8000

CMD [ "uvicorn", "app.main:app", "--host", "0.0.0.0"]


При развертывании не видит строку
CMD [ "uvicorn", "app.main:app", "--host", "0.0.0.0"]
, хотя если ее явно прописать в docker-compose.yaml в строке command, то начинает его выполнять. но уже возникает другая ошибка ModuleNotFoundError: No module named 'app'

Как исправить ошибку "Error response from daemon: No command specified"?
  • Вопрос задан
  • 1584 просмотра
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji
DevOps Engineer
попробуйте сначала
docker-compose build
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы