Не удалось найти файл сертификата или ключа ssl в docker сборке - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть файл docker, который генерирует приложение flask с использованием gunicorn. Для моих целей мне нужно использовать https, поэтому я настраиваю ssl с помощью openssl. Однако я продолжаю сталкиваться с этой ошибкой:

[2020-02-24 17:01:18 +0000] [1] [INFO] Starting gunicorn 20.0.4
Traceback (most recent call last):
  File "/usr/local/bin/gunicorn", line 11, in <module>
    sys.exit(run())
  File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 58, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 228, in run
    super().run()
  File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 72, in run
    Arbiter(self).run()
  File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 198, in run
    self.start()
  File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 155, in start
    self.LISTENERS = sock.create_sockets(self.cfg, self.log, fds)
  File "/usr/local/lib/python3.6/dist-packages/gunicorn/sock.py", line 162, in create_sockets
    raise ValueError('certfile "%s" does not exist' % conf.certfile)
ValueError: certfile "server.crt" does not exist

Вот мой Dockerfile:

FROM ubuntu:latest

RUN apt-get update && apt-get install python3-pip -y && \
    apt-get install python3-dev openssl


RUN openssl req -nodes -new -x509 -keyout server.key -out server.cert -subj "/C=US/ST=MD/L=Columbia/O=Example/OU=ExampleOU/CN=example.com/emailAddress=seanbrhn3@gmail.com"

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip3 install -r requirements.txt

COPY . /app

ENV PORT 8080

CMD ["gunicorn", "--certfile=server.crt","--keyfile=server.key","app:app", "--config=config.py"]

Вся помощь наиболее ценится!

1 Ответ

0 голосов
/ 28 февраля 2020

Я решил проблему вместо создания сертификата и ключа в файле docker. Я использовал команду copy, чтобы взять мой сертификат и ключи из локального каталога и поместить его в файл docker. Моей проблемой было только отсутствие знаний о docker

...