add working docker-compose elements

This commit is contained in:
sommersoft 2022-02-08 07:31:54 -06:00
parent bc33ba0be9
commit 5612367f3f
3 changed files with 115 additions and 0 deletions

View File

@ -0,0 +1,31 @@
FROM sommersoft/pyenv-pytest:latest
COPY entrypoint.sh /entrypoint.sh
# Add mysql apt repository
RUN set -ex; \
# gpg: key 5072E1F5: public key "MySQL Release Engineering <mysql-build@oss.oracle.com>" imported
key='859BE8D7C586F538430B19C2467B942D3A79BD29'; \
export GNUPGHOME="$(mktemp -d)"; \
#gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
for server in ha.pool.sks-keyservers.net \
hkp://p80.pool.sks-keyservers.net:80 \
keyserver.ubuntu.com \
hkp://keyserver.ubuntu.com:80 \
pgp.mit.edu; do \
gpg --keyserver "$server" --recv-keys "$key" && break || echo "Trying new keyserver..."; \
done; \
gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
apt-key list > /dev/null
RUN echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list
RUN apt-get update \
&& apt-get install --no-install-recommends -y make build-essential libssl-dev zlib1g-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev \
libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
RUN apt-get install -y postgresql-client mysql-client
ENTRYPOINT [ "/entrypoint.sh" ]

View File

@ -0,0 +1,78 @@
version: "3"
services:
base_nodb:
build: .
environment:
- DS_NAME
- DS_YAML
- DS_JOBS
- DS_MATRIX_EXCLUDE
volumes:
- type: bind
source: /home/runner/work/pytest/pytest
target: /pytest
volume:
nocopy: true
profiles:
- nodb
base_postgres:
build: .
environment:
- DS_NAME
- DS_YAML
- DS_JOBS
- DS_MATRIX_EXCLUDE
- TEST_DB_USER=$USER
- TEST_DB_PASSWORD=pytest_djang0
- TEST_DB_HOST=postgres_db
volumes:
- type: bind
source: /home/runner/work/pytest/pytest
target: /pytest
volume:
nocopy: true
depends_on:
- postgres_db
profiles:
- postgres
postgres_db:
image: "postgres:latest"
environment:
- POSTGRES_PASSWORD=pytest_djang0
- POSTGRES_USER=$USER
volumes:
- /etc/passwd:/etc/passwd:ro
- ./data/db:/var/lib/postgresql/data
profiles:
- postgres
base_mysql:
build: .
environment:
- DS_NAME
- DS_YAML
- DS_JOBS
- DS_MATRIX_EXCLUDE
- TEST_DB_USER=root
- TEST_DB_PASSWORD=root
- TEST_DB_HOST=mysql_db
volumes:
- type: bind
source: /home/runner/work/pytest/pytest
target: /pytest
volume:
nocopy: true
depends_on:
- mysql_db
profiles:
- mysql
mysql_db:
image: "mysql:latest"
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD=root
volumes:
- ./data/db:/var/lib/mysql
profiles:
- mysql

View File

@ -0,0 +1,6 @@
#!/bin/bash
python3.9 -m pip install --no-cache-dir pyyaml sh
cd /pytest
python3.9 -u -m testing.downstream_testing.downstream_runner $DS_NAME $DS_YAML $DS_JOBS --matrix-exclude $DS_MATRIX_EXCLUDE