Skip to content
Snippets Groups Projects
Commit 006c7f5e authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

add test CI

parent aba55d40
No related branches found
No related tags found
No related merge requests found
Pipeline #11888 failed
stages:
- build
image: docker:20.10.8
variables:
DOCKER_TLS_CERTDIR: "/certs"
IMAGE_TAG_APP: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
IMAGE_TAG_NGINX: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-nginx
services:
- docker:20.10.8-dind
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build_app:
stage: build
script:
- docker pull $CI_REGISTRY_IMAGE:test || true
- docker build --cache-from $CI_REGISTRY_IMAGE:test -t $IMAGE_TAG_APP .
- docker push $IMAGE_TAG_APP
build_nginx:
stage: build
when: manual
script:
- docker pull $CI_REGISTRY_IMAGE:test-nginx || true
- docker build --cache-from $CI_REGISTRY_IMAGE:test-nginx -t $IMAGE_TAG_NGINX . -f Dockerfile.nginx
- docker push $IMAGE_TAG_NGINX
FROM python:3.10
RUN mkdir /app
WORKDIR /app
RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash -
RUN apt-get install nodejs && rm -rf /var/lib/apt/lists/*
COPY . .
RUN pip install -r requirements/base.txt -r requirements/production.txt
RUN npm install
RUN npm run build
# Placeholder values so the static files collect
RUN DATABASE_URL=postgres://x/x \
SECRET_KEY=x \
ALLOWED_HOSTS=x \
python manage.py collectstatic --noinput --settings=registry.settings.production
RUN bash -c "adduser --disabled-login --quiet --gecos app app && \
chmod -R o+r /app/ && \
chmod o+x /app/run.sh"
USER app
ENV DJANGO_SETTINGS_MODULE "registry.settings.production"
EXPOSE 8000
CMD ["bash", "run.sh"]
FROM nginx:1.18
EXPOSE 8080
ADD nginx.conf /etc/nginx/conf.d/contract_registry.conf
upstream contract_registry {
ip_hash;
server app:8000;
}
server {
server_name contract_registry;
listen 8080;
client_max_body_size 10M;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
send_timeout 60;
location / {
proxy_pass http://contract_registry/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
run.sh 0 → 100644
#!/bin/bash
# exit on error
set -e
# migrate database
python manage.py migrate
# start webserver
exec gunicorn -c gunicorn.conf.py registry.wsgi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment