我正在尝试在 dockerized 环境中设置 pythons django
文件
FROM python:3.5-slim
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
RUN pip install --upgrade pip
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE 8000
Run Code Online (Sandbox Code Playgroud)
我将此构建为django-app
.
docker-compose.yml
django:
container_name: django
image: django-app:latest
ports:
- "8000:8000"
volumes:
- ./config/startup.sh:/startup.sh
- ./app:/code
command: /bin/sh /startup.sh
Run Code Online (Sandbox Code Playgroud)
启动文件
#!/bin/sh
cd /code
django-admin.py startproject djagento
echo "Creating Project djagento"
cd djagento
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
我使用 ubuntu 14.04 LTS 作为我的主机系统
docker exec -it django bash
$curl 127.0.0.1:8000
是成功的。
我正在获取我的容器的 ip docker inspect django
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2"
Run Code Online (Sandbox Code Playgroud)
但是当尝试curl 172.17.0.1:8000
或curl 172.17.0.2:8000
或卷曲127.0.0.1:8000
时,除了连接重置之外,我什么也得不到
编辑
docker ps
baada462ae72 django-app:latest "/bin/sh /startup.sh" 6 seconds ago Up 5 seconds 0.0.0.0:8005->8000/tcp django
Run Code Online (Sandbox Code Playgroud)
*在另一个端口上,结果相同*
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9d99ee563e5 django-app:latest "/bin/sh /startup.sh" About a minute ago Up About a minute 0.0.0.0:8005->8000/tcp django
Run Code Online (Sandbox Code Playgroud)
谢谢
对于任何遇到此问题的人,您必须在 docker 容器内的 0.0.0.0:8000 上运行 django 服务器,只需添加python django-admin runserver 0.0.0.0:8000
我的 startup.sh 即可为我解决此问题
归档时间: |
|
查看次数: |
6787 次 |
最近记录: |