accessibility-checker-api/Dockerfile

38 lines
2.1 KiB
Docker

FROM "alpine:3.15"
ENV use_proxy yes
ENV http_proxy 'http://host.docker.internal:24865'
ENV https_proxy 'http://host.docker.internal:24865'
ENV no_proxy localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
RUN mkdir -p /app && \
apk update && \
apk add xvfb xvfb-run chromium chromium-chromedriver curl \
openjdk11-jdk nodejs npm python3 py3-django py3-psycopg2 \
py3-requests postgresql14 postgresql14-jit sudo bash && \
npm config set strict-ssl false && \
npm config set proxy http://host.docker.internal:24865 && \
npm config set http-proxy http://host.docker.internal:24865 && \
npm config set https-proxy http://host.docker.internal:24865
RUN (addgroup -S postgres && adduser -S postgres -G postgres || true)
RUN mkdir -p /var/lib/postgresql/data
RUN mkdir -p /run/postgresql/
RUN chown -R postgres:postgres /run/postgresql/
RUN chmod -R 777 /var/lib/postgresql/data
RUN chown -R postgres:postgres /var/lib/postgresql/data
RUN su - postgres -c "initdb /var/lib/postgresql/data"
RUN echo "host all all 0.0.0.0/0 md5" >> /var/lib/postgresql/data/pg_hba.conf
RUN su - postgres -c "pg_ctl start -D /var/lib/postgresql/data -l /var/lib/postgresql/log.log && psql --command \"CREATE USER acessibilitychecker WITH PASSWORD 'acessibilitychecker';\" && psql --command \"CREATE DATABASE acessibilitychecker WITH OWNER acessibilitychecker;\" && psql --command \"ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';\" && psql --command \"CREATE DATABASE builddb;\" && pg_ctl stop -D /var/lib/postgresql/data -l /var/lib/postgresql/log.log"
COPY . /app
RUN addgroup -S pptruser && adduser -S -g pptruser pptruser \
&& mkdir -p /home/pptruser/Downloads /app \
&& chown -R pptruser:pptruser /home/pptruser \
&& chown -R pptruser:pptruser /app
RUN chmod +x /app/entrypoint.sh
RUN chmod +x /app/wait-for-it.sh
WORKDIR /app
ENV PUPPETEER_SKIP_DOWNLOAD 1
ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium-browser
USER pptruser
RUN rm -rf package-lock.json && npm upgrade --unsafe-perm && npm i --unsafe-perm
USER root
CMD ["/bin/sh", "-c", "./entrypoint.sh"]