我可以在单个Docker容器中安装Postgres + Python进行测试吗?

时间:2020-09-24 09:08:46

标签: python postgresql docker pytest

我想在需要数据库的Flask应用程序的某些路由上运行pytest。遗憾的是,由于安装程序使用数据库模式,因此sqlite无法正常工作。应该是Postgres。

我想将其集成到CI管道中,我认为docker-compose在那里不起作用。但是Docker确实如此。所以我需要在单个Docker容器中使用pytest + postgres。我该怎么办?

我尝试过的

FROM python:3.7.9-slim-buster
RUN apt-get update
RUN apt-get -y install postgresql
RUN service postgresql start
COPY setup_dev_user.sql ./
RUN chmod 777 setup_dev_user.sql

USER postgres
RUN psql --file=setup_dev_user.sql
RUN psql createdb dev_db
ENV SQLALCHEMY_DATABASE_URI postgresql://dev_user:dev_pw@db:5432/dev_db

USER root
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install --no-cache-dir psycopg2-binary
COPY app /app/app
WORKDIR /app
CMD pytest

setup_dev_user.sql在哪里

create user dev_user password 'dev_pw'

我明白了

psql: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"
The command '/bin/sh -c psql --file=setup_dev_user.sql' returned a non-zero code: 2

用于步骤RUN psql --file=setup_dev_user.sql。我该如何解决?

0 个答案:

没有答案