diff --git a/Dockerfile b/Dockerfile index 5261185..48b139b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,19 @@ -FROM python:3 +FROM python:3.9-slim-bullseye -LABEL maintainer="Joakim Olsson " -LABEL description="Base image for running Robot Framework test suites in Docker. \ - \ - The image cotains the following Robot Framework libraries:\ - - Appium library - Keywords for Android & IOS device UI tests \ - - Database library - Keywords for SQL queries & statements \ - - HTTP library - Keywords for HTTP & Rest \ - - RabbitMQ library - Keywords for Rabbit MQ \ - - Selenium2 library - Keywords for cross browser tests\ - \ - Drivers:\ - - psycopg2 - Python driver for Postgres \ - - PyMySQL - Python driver for MySQL" +ARG TARGETOS +ARG TARGETARCH +ARG GECKODRIVER_VERSION=0.32.0 RUN apt-get update && \ - apt-get -y install jq firefox-esr && \ - rm -r /var/lib/apt/lists/* && \ - pip install \ - urllib3 \ - psycopg2-binary \ - PyMySQL \ - robotframework==6.0.1 \ - robotframework-appiumlibrary \ - robotframework-databaselibrary \ - robotframework-httplibrary \ - -e "git+https://github.com/JakUi/robotframework-rabbitmq-fork#egg=robotframework-rabbitmq-ao" \ - robotframework-selenium2library + apt-get -y install jq firefox-esr curl git && \ + rm -r /var/lib/apt/lists/* + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt && \ + rm requirements.txt + +COPY geckodriver.sh . +RUN ./geckodriver.sh $GECKODRIVER_VERSION $TARGETOS $TARGETARCH && \ + rm geckodriver.sh + +# echo "192.168.65.2 app-acctest auth0 api-acctest" >> /etc/hosts diff --git a/geckodriver.sh b/geckodriver.sh new file mode 100755 index 0000000..ffc02ff --- /dev/null +++ b/geckodriver.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -o errexit -o pipefail -o noclobber -o nounset + +VERSION=${1:-"0.32.0"} +OS=${2:-linux} +ARCH=${3:-} +OS_ARCH="" + +if [ "${ARCH}" == "amd64" ]; then + OS_ARCH="${OS}64" +elif [ "${ARCH}" == "arm64" ]; then + OS_ARCH="${OS}-aarch64" +fi + +GH_URL="https://github.com/mozilla/geckodriver/releases/download/" +TMP_FILE="geckodriver.tar.gz" +curl -L -s \ + -o ${TMP_FILE} \ + "${GH_URL}v${VERSION}/geckodriver-v${VERSION}-${OS_ARCH}.tar.gz" + +tar -xzf ${TMP_FILE} +mv geckodriver /usr/bin +rm ${TMP_FILE} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8c8c208 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,9 @@ +robotframework==6.0.1 +robotframework-seleniumlibrary==6.0.0 +urllib3==1.26.13 +psycopg2-binary==2.9.5 +PyMySQL==1.0.2 +robotframework-appiumlibrary==2.0.0 +robotframework-databaselibrary==1.2.4 +robotframework-httplibrary==0.4.2 +git+https://github.com/JakUi/robotframework-rabbitmq-fork#egg=robotframework-rabbitmq-ao