| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.ref.name=ubuntu |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:ddf1aa62235de6657123492b19d27d937c25668011b5ebf923a3f019200f8540 in / |
| CMD ["/bin/bash"] |
| LABEL maintainer=Invoice Reader |
| ARG WWWGROUP=1000 |
| WORKDIR /var/www/html |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV TZ=UTC |
| ENV MYSQL_ROOT_PASSWORD=secret |
| ENV MYSQL_DATABASE=invoice_reader |
| ENV MYSQL_USER=invoice_reader |
| ENV MYSQL_PASSWORD=secret |
| ENV POSTGRES_DB=keycloak |
| ENV POSTGRES_USER=keycloak |
| ENV POSTGRES_PASSWORD=keycloak |
| ENV KC_DB=postgres |
| ENV KC_DB_URL=jdbc:postgresql://localhost:5432/keycloak |
| ENV KC_DB_USERNAME=keycloak |
| ENV KC_DB_PASSWORD=keycloak |
| ENV KC_HOSTNAME=localhost |
| ENV KC_HOSTNAME_STRICT=false |
| ENV KC_HOSTNAME_STRICT_HTTPS=false |
| ENV KC_HTTP_ENABLED=true |
| ENV KC_HTTP_PORT=8080 |
| ENV KEYCLOAK_ADMIN=admin |
| ENV KEYCLOAK_ADMIN_PASSWORD=admin |
| ENV APP_ENV=production |
| ENV APP_DEBUG=false |
| ENV DB_CONNECTION=mysql |
| ENV DB_HOST=127.0.0.1 |
| ENV DB_PORT=3306 |
| ENV DB_DATABASE=invoice_reader |
| ENV DB_USERNAME=invoice_reader |
| ENV DB_PASSWORD=secret |
| ENV KEYCLOAK_BASE_URL=http://localhost:8080 |
| ENV KEYCLOAK_INTERNAL_BASE_URL=http://127.0.0.1:8080 |
| RUN |1 WWWGROUP=1000 /bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c apt-get update && apt-get upgrade -y && mkdir -p /etc/apt/keyrings && apt-get install -y gnupg curl ca-certificates zip unzip supervisor libpng-dev librsvg2-bin imagemagick poppler-utils tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng mysql-server mysql-client postgresql postgresql-contrib openjdk-21-jre-headless wget && curl -sS 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xb8dc7e53946656efbce4c1dd71daeaab4ad4cab6' | gpg --dearmor | tee /etc/apt/keyrings/ppa_ondrej_php.gpg > /dev/null && echo "deb [signed-by=/etc/apt/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu noble main" > /etc/apt/sources.list.d/ppa_ondrej_php.list && apt-get update && apt-get install -y php8.4-cli php8.4-fpm php8.4-mysql php8.4-pgsql php8.4-sqlite3 php8.4-gd php8.4-curl php8.4-mbstring php8.4-xml php8.4-zip php8.4-bcmath php8.4-intl php8.4-redis php8.4-imagick && apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # buildkit |
| ENV KEYCLOAK_VERSION=26.0.7 |
| RUN |1 WWWGROUP=1000 /bin/sh -c mkdir -p /opt/keycloak && wget -q https://github.com/keycloak/keycloak/releases/download/${KEYCLOAK_VERSION}/keycloak-${KEYCLOAK_VERSION}.tar.gz -O /tmp/keycloak.tar.gz && tar -xzf /tmp/keycloak.tar.gz -C /opt/keycloak --strip-components=1 && rm /tmp/keycloak.tar.gz && mkdir -p /opt/keycloak/data/import # buildkit |
| COPY docker/keycloak/realm.json /opt/keycloak/data/import/realm.json # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld && chmod 755 /var/run/mysqld # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c mkdir -p /var/run/postgresql && chown postgres:postgres /var/run/postgresql && chmod 755 /var/run/postgresql # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c groupadd --force -g $WWWGROUP www-data || true && useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1000 www-data || true # buildkit |
| COPY docker/production/supervisord.conf /etc/supervisor/conf.d/supervisord.conf # buildkit |
| COPY docker/production/start-container /usr/local/bin/start-container # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c chmod +x /usr/local/bin/start-container # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c touch /etc/supervisor/conf.d/queue-workers.conf && chown www-data:www-data /etc/supervisor/conf.d/queue-workers.conf # buildkit |
| COPY /app/vendor ./vendor # buildkit |
| COPY /app/public/build ./public/build # buildkit |
| COPY --chown=www-data:www-data . . # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c chown -R www-data:www-data storage bootstrap/cache && chmod -R 775 storage bootstrap/cache # buildkit |
| RUN |1 WWWGROUP=1000 /bin/sh -c mkdir -p storage/logs storage/framework/cache storage/framework/sessions storage/framework/views && chown -R www-data:www-data storage # buildkit |
| EXPOSE [3306/tcp 5432/tcp 80/tcp 8080/tcp] |
| VOLUME [/var/lib/mysql /var/lib/postgresql /var/www/html/storage] |
| HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost/up && curl -f http://localhost:8080/health/ready || exit 1"] "30s" "10s" "1m0s" "0s" '\x03'} |
| ENTRYPOINT ["start-container"] |