我想在需要数据库的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
。我该如何解决?