我正在尝试使用以下文件夹结构从子目录“app”构建我的 Django 应用程序的图像。但是,在 docker-hub 上指定我的构建规则后:
app/Dockerfile/自动构建仍然无法定位 requirements.txt
/
??? app/
? ??? Dockerfile
? ??? requirements.txt
? ??? (Django files...)
??? nginx/
? ??? Dockerfile
? ??? (nginx files...)
??? docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
应用程序/Dockerfile:
FROM python:3.7
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN pip install --upgrade pip
RUN mkdir /app
WORKDIR /app
COPY . /app/
RUN pip install -r requirements.txt
# copy entrypoint.sh
COPY ./entrypoint.sh /app/entrypoint.sh
# run entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
Docker-hub 构建日志:
我在 Kubernetes 中运行 DjangoRestAPI,并注意到当我在同一部署上使用 Gunicorn 来服务 DjangoRestAPI 时,性能非常差。一个简单的 HttpResponse 平均需要大约 6000 毫秒。如果没有gunicorn,通过 服务python manage.py runserver,同样的请求只需要50ms。
这是我通过运行命令对 djangoRestAPI 和 Gunicorn 进行的部署gunicorn api.wsgi --bind 0.0.0.0:8000
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: djangoapi
type: web
name: djangoapi
namespace: "default"
spec:
replicas: 3
template:
metadata:
labels:
app: djangoapi
type: web
spec:
containers:
- name: djangoapi
image: <repo>/app:v0.9a
imagePullPolicy: Always
args:
- gunicorn
- api.wsgi
- --bind
- 0.0.0.0:8000
envFrom:
- configMapRef:
name: djangoapi-config
ports:
- containerPort: 8000
imagePullSecrets:
- name: …Run Code Online (Sandbox Code Playgroud)