Skip to content
Snippets Groups Projects
Commit 64e5b460 authored by Erwan Rouchet's avatar Erwan Rouchet Committed by Bastien Abadie
Browse files

Base image bootstrap script

parent 300503f3
No related branches found
No related tags found
No related merge requests found
image: registry.gitlab.com/arkindex/backend:base-0.10.1
image: registry.gitlab.com/arkindex/backend:base-0.10.3
stages:
- test
- build
......
......@@ -12,7 +12,7 @@ RUN \
mkdir /tmp/common && \
wget --header "PRIVATE-TOKEN: $GITLAB_TOKEN" https://gitlab.com/api/v4/projects/$COMMON_ID/repository/archive.tar.gz?sha=$COMMON_BRANCH -O /tmp/common/archive.tar.gz && \
tar --strip-components=1 -xvf /tmp/common/archive.tar.gz -C /tmp/common && \
cd /tmp/common && python setup.py install && \
cd /tmp/common && pip install --disable-pip-version-check --no-cache-dir --quiet . && \
rm -rf /tmp/common
# Install arkindex-ponos from private repo
......@@ -20,7 +20,7 @@ RUN \
mkdir /tmp/ponos && \
wget --header "PRIVATE-TOKEN: $GITLAB_TOKEN" https://gitlab.com/api/v4/projects/$PONOS_ID/repository/archive.tar.gz?sha=$PONOS_BRANCH -O /tmp/ponos/archive.tar.gz && \
tar --strip-components=1 -xvf /tmp/ponos/archive.tar.gz -C /tmp/ponos && \
cd /tmp/ponos && python setup.py install && \
cd /tmp/ponos && pip install --disable-pip-version-check --no-cache-dir --quiet . && \
rm -rf /tmp/ponos
# Install arkindex and its deps
......
......@@ -6,17 +6,15 @@ COMMON_BRANCH=master
VERSION=$(shell git rev-parse --short HEAD)
TAG_APP=arkindex-app
TAG_BASE=arkindex-base
TAG_SHELL=arkindex-shell
.PHONY: build base
all: clean build
base: require-version
echo $(version) > $(ROOT_DIR)/VERSION
docker build $(ROOT_DIR)/base -t $(TAG_BASE):$(version) -t $(TAG_BASE):latest -t registry.gitlab.com/arkindex/backend:base-$(version)
docker build $(ROOT_DIR)/base -t registry.gitlab.com/arkindex/backend:base-$(version)
docker push registry.gitlab.com/arkindex/backend:base-$(version)
git commit $(ROOT_DIR)/VERSION -m 'Bump to $(version)'
sed -i '/image:/s/base-.*$$/base-$(version)/' $(ROOT_DIR)/.gitlab-ci.yml
clean:
rm -rf *.egg-info build dist .eggs
......
......@@ -2,24 +2,11 @@ FROM python:3.6-alpine as base
FROM base as staging
# Add system dependencies, use cache by copying requirements
RUN apk add --update --no-cache postgresql-dev jpeg-dev build-base gzip zlib-dev libmagic libxml2-dev libxslt-dev libffi-dev
RUN apk add --update wget gzip libmagic git unzip libpq libxslt libjpeg imagemagick
# Install long buildtime deps
# Uses a source archive instead of full local copy to speedup docker build
ADD requirements.txt /requirements.txt
RUN pip install --install-option="--prefix=/build" -r requirements.txt
# Restart from base, using staging build
FROM base
# Import from staging the python build, so the final image is slimmer
# and has no build tool
COPY --from=staging /build /usr
ENV PYTHONPATH=/usr/lib/python3.6/site-packages
# Add runtime system deps
RUN apk add --update --no-cache wget gzip libmagic git unzip libpq libxslt libjpeg imagemagick
# Install python dependencies that are slow to install or require specific build deps
ADD requirements.txt bootstrap.sh /
RUN /bootstrap.sh
# Add unprivilegied user
RUN addgroup -g 1000 teklia && adduser -D -u 1000 -G teklia ark
......
#!/bin/sh
apk add --virtual build-dependencies postgresql-dev jpeg-dev build-base gzip zlib-dev libmagic libxml2-dev libxslt-dev libffi-dev
pip install --disable-pip-version-check --no-cache-dir --quiet -r requirements.txt
apk del build-dependencies
rm -rf /var/cache/apk/*
rm bootstrap.sh requirements.txt
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment