自从我移至Docker Postgres以来,通过pytest进行的测试失败。现在,我将数据库连接确定为问题。
工作原理: 当我在Mac上使用PostgreSQL 10时,它可以正常运行。作为我settings.py中的数据库凭据,我使用:
hyper link(to the servlet/target link)
失败的方式:自从我迁移到Docker + Postgres之后,我必须使用不同的凭据连接到我的Docker Postgres:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'project',
'USER': 'MyName',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
因为我想使用Docker而不是PostgreSQL,但仍然希望能够进行测试,所以我想知道您是否有解决我问题的方法?
这是我的控制台日志输出:https://pastebin.com/MZsccuGJ
我的Dockerfile
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
Docker-Compose
# Pull base image
FROM python:3
# Set environment varibles
ENV PYTHONUNBUFFERED 1
# Set work directory
RUN mkdir /code
WORKDIR /code
# Install dependencies
RUN pip install --upgrade pip
RUN pip install pipenv
COPY ./Pipfile /code/Pipfile
RUN pipenv install --deploy --system --skip-lock --dev
# Define ENTRYPOINT
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
# Copy project
COPY . /code/