我有一个Django应用程序,我想转移到docker。 redis dump.rdb文件位于项目的根目录中,包含应用程序运行所需的数据。我通常通过在同一目录中运行redis-server来启动它。如何将此配置移动到docker?我知道我可以使用卷并怀疑我需要将我的代码文件夹作为一个安装,但这会导致其他问题吗?这是我目前的码头设置:
Dockerfile
FROM python:2.7.14
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD . /code/
ADD requirements /requirements
RUN pip install -r /requirements/local.txt
搬运工-compose.yml
version: '3'
services:
db:
image: postgres:9.6.3
expose:
- "5432"
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:3.2.6
expose:
- "6379"
volumes:
- ./code
redis_cache:
image: redis:3.2.6
expose:
- "6379"
elasticsearch:
image: elasticsearch:5.6.6
expose:
- "9200"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://postgres@db/postgres
- ENVIRONMENT=development
- REDIS_URL=redis://redis:6379
- REDIS_CACHE_URL=redis://redis_cache:6379
- ELASTIC_ENDPOINT=elasticsearch:9200
env_file: docker.env
depends_on:
- db
- redis
- elasticsearch
volumes:
- .:/code
volumes:
pgdata: {}
答案 0 :(得分:1)
有几种方法。您需要更喜欢什么取决于您的项目以及dump.rds
文件中存储的信息类型。
redis
文件的自定义dump.rds
图片。然后,您需要将其推送到您的存储库。 code
目录,而只挂载redis
目录,该目录存储了用于Redis的数据。web
容器中创建一些迁移脚本。它可能会在redis
容器和db
容器中创建一些数据。