我找到了一个Django项目,但无法通过以下方式在Docker容器中运行它:
git clone https://github.com/hotdogee/django-blast.git
$ cat requirements.txt
在此文件中,必须更新以下依赖项:- 海带==3.0.30
- psycopg2==2.8.6
我有以下 Dockerfile:
FROM python:2
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
对于docker-compose.yml
我来说:
version: "3"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
docker-compose 使用哪个 IP 地址,因为我必须更改以下硬编码地址:
$ grep -ir "127.0.0.1"
i5k/settings_prod.py: 'HOST': '127.0.0.1',
i5k/settings.py: 'HOST': '127.0.0.1',
i5k/settings.py: 'LOCATION': '127.0.0.1:11211',
Binary file i5k/settings.pyc matches
example/blastdb/AGLA_new_ids.faa.phd:13312790801051
grep: data/db: Permission denied
blast/static/blast/components/code-mirror/codemirror-4.0/mode/nginx/index.html: fastcgi_pass 127.0.0.1:9000;
blast/static/blast/components/code-mirror/codemirror-4.0/mode/nginx/index.html: fastcgi_pass 127.0.0.1:9000;
axes/tests.py: reset(ip='127.0.0.1')
axes/decorators.py: ip_address = '127.0.0.1'
先感谢您
答案1
不要使用容器内的 IP 地址。而是使用链接标志将多个容器连接在一起,然后使用链接容器的名称。
version: "3"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
links:
- db
该链接允许 Web 容器到达主机名为 db 的 db 容器。