Jin*_*gda 3 django docker dockerfile docker-compose docker-buildkit
我正在使用 docker compose 在 Ubuntu 22.04.3 上创建 Django 服务器、MySQL 数据库和 Django Q。但是当我运行 docker-compose -f ./docker-compose.yml 时,出现以下错误:
[+] Building 38.8s (1/1) FINISHED
=> ERROR [internal] booting buildkit 38.8s
=> => pulling image moby/buildkit:buildx-stable-1 20.4s
=> => creating container buildx_buildkit_default 18.5s
------
> [internal] booting buildkit:
#0 38.84 time="2023-10-13T13:02:28Z" level=warning msg="using host network as the deftime="2023-10-13T13:02:28Z" level=warning msg="using host network as the default"
#0 38.84 time="2023-10-13T13:02:28Z" level=warning msg="skipping containerd worker, as \"/run/containerd/containerd.sock\" does not exist"
#0 38.84 dtime="2023-10-13T13:02:28Z" level=info msg="found 1 workers, default=\"abfxoy5dnaaz4694avydedw1g\""
#0 38.84 `time="2023-10-13T13:02:28Z" level=warning msg="currently, only the default worker can be used."
#0 38.84 \time="2023-10-13T13:02:28Z" level=info msg="running server on /run/buildkit/buildkitd.sock"
#0 38.84 time="2023-10-13T13:02:28Z" level=warning msg="skipping containerd worker, as \"/run/containerd/containerd.sock\" does not exist"
#0 38.84 time="2023-10-13T13:02:28Z" level=warning msg="currently, only the default worker can be used."
#0 38.84 time="2023-10-13T13:02:28Z" level=warning msg="currently, only the default worker can be used."
#0 38.84
------
http: invalid Host header
Run Code Online (Sandbox Code Playgroud)
我的 Docker 信息:
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc., v0.10.4)
compose: Docker Compose (Docker Inc., v2.17.2)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 4
Server Version: 20.10.24
Storage Driver: zfs
Zpool: rpool
Zpool Health: ONLINE
Parent Dataset: rpool/ROOT/ubuntu_5bq6zk/var/snap
Space Used By Parent: 1548288
Space Available: 502181703680
Parent Quota: no
Compression: lz4
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
runc version:
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.19.0-46-generic
Operating System: Ubuntu Core 22
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 7.752GiB
Name: COSHOKDS01
ID: CRI6:RNK6:QDAX:DPRN:OTB6:MEWS:OKKV:4J7W:LPPW:5T5G:VC6N:2PN3
Docker Root Dir: /var/snap/docker/common/var-lib-docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile 如下:
FROM python 3.10
ENV PYTHONUNBUFFERED 1
RUN apt-get update
RUN apt-get install python3-dev default-libmysqlclient-dev -y
RUN mkdir -p /app
WORKDIR /app
RUN pip install pip -U
COPY requirements.txt /app/
RUN pip install -r requirements.txt
COPY . /app/
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose.yml:
version: '3.9'
services:
redis:
image: redis:alpine
ports:
- 6379:6379
web:
build:
context: .
dockerfile: Dockerfile
image: rest
container_name: rest
restart: always
command: python manage.py runserver 10.36.0.149:8000
ports:
- "8000:8000"
volumes:
- .:/app
depends_on:
- mysql
- django_q
mysql:
image: mysql
container_name: mysql
command: --default-authentication-plugin=mysql_native_password --mysqlx=0
volumes:
- "./mysql:/var/lib/mysql"
environment:
- MYSQL_HOST=localhost
- MYSQL_PORT=3306
- MYSQL_DATABASE=kds_db
- MYSQL_USER=kds_admin
- MYSQL_PASSWORD=
ports:
- 3306:3306
restart: always
django_q:
build: .
command: python manage.py qcluster
volumes:
- .:/app
depends_on:
- redis
Run Code Online (Sandbox Code Playgroud)
有人知道发生了什么吗?
非常感谢
我尝试重新安装我的 docker 并避免使用 BuildKit,但它们不起作用。我想在 docker 上部署 Django REST 服务和 Django Q。
Ste*_*sch 16
我也有同样的问题。我猜你正在使用 snap docker。我服务器上的(snap)docker版本(2904)也有同样的问题。
在我的笔记本电脑上,docker 版本(2893)按预期工作。我将笔记本电脑上的快照通道更改为最新/候选(2904),并且出现了同样的问题。切换回最新/稳定版,一切都恢复正常。
所以:
snap info docker
Run Code Online (Sandbox Code Playgroud)
获取一些版本信息。
使用:
snap refresh --stable docker
Run Code Online (Sandbox Code Playgroud)
切换到稳定频道。
现在,正如预期的那样,您的项目在我的笔记本电脑上构建。我确实必须改变:
FROM python 3.10
Run Code Online (Sandbox Code Playgroud)
到
FROM python:3.10
Run Code Online (Sandbox Code Playgroud)
该切换适用于我的笔记本电脑 (Ubuntu 23.10),但不适用于我的服务器 (Ubuntu 18.04.6)。
在服务器上我必须使用:
sudo snap refresh --revision=2893 docker
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2835 次 |
| 最近记录: |