问题描述
我刚刚发现了CaddyServer,它看起来非常有前途,可以与Docker在同一VPS上运行多个应用程序。
但是我正在努力将docker-compose.yml文件设置为可用于外部域。我将在稍后的生产中使用gunicorn,现在我很乐意让Django runserver正常工作。
这是我的目录结构:
caddy/
Caddyfile
docker-compose.yml
djangoApp/
docker-compose.yml
Dockerfile
config/
...
manage.py
requirements.txt
myghostapp/
这是caddy/Caddyfile
{
email [email protected]
acme_ca https://acme-staging-v02.api.letsencrypt.org/directory
}
app1.example.com {
reverse_proxy django:8000
}
# app2.example.com {
# reverse_proxy ghost:2368
# }
app2.example.com是我想要的第二个域,它指向虚幻应用程序。无需评论(我将其包括在内以供参考)可使用此功能。
这是caddy/docker-compose
(反向代理)
version: "3"
networks:
web:
external: true
services:
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- /data/caddy/Caddyfile:/etc/caddy/Caddyfile
networks:
- web
django:
build:
context: /data/djangoApp/
dockerfile: /data/djangoApp/Dockerfile
restart: unless-stopped
environment:
- url=app1.example.com
volumes:
- /data/djangoApp:/app/
networks:
- web
# ghost:
# image: ghost:3.22-alpine
# restart: unless-stopped
# environment:
# - url=app2.example.com
# volumes:
# - /data/myghostapp:/var/lib/ghost/content
# networks:
# - web
就目前而言,让Django应用程序正常运行将是很棒的事情。
在djangoApp
文件夹中,我有一个像这样的Dockerfile:
# djangoApp/Dockerfile
FROM python:3
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN mkdir /app
WORKDIR /app
COPY requirements.txt /app/
RUN pip install -r requirements.txt
COPY . /app/
还有一个docker-compose.yml
# djangoApp/docker-compose.yml
version: "3.8"
services:
db:
image: postgres:10.5-alpine
ports:
- "5432:5432"
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_data:/var/lib/postgresql/data/
networks:
- web
djangy:
build: .
command: bash -c "python /app/manage.py migrate --noinput && python /app/manage.py runserver 0.0.0.0:8000"
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
networks:
- web
links:
- db:db
volumes:
postgres_data:
networks:
web:
external: true
我一直认为在我的VPS上,我可以
docker create network web
然后运行
docker-compose up --build
caddy/
内,然后是djangoApp/
但是我明白了
当我尝试在浏览器中访问域时,lookup django on 127.0.0.11:53: no such host
记录了日志中的错误msg。
任何帮助将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)