Project 'ulrike.pado/asyst-moodle-plugin' was moved to 'knight/asyst-moodle-plugin'. Please update any links and bookmarks that may still have the old path.
Commit df6dd85b authored by Artem Baranovskyi's avatar Artem Baranovskyi
Browse files

Image build is optimized.

parent 38ed74fc
No related merge requests found
Pipeline #10887 failed with stages
in 2 minutes and 29 seconds
Showing with 39 additions and 32 deletions
+39 -32
......@@ -23,30 +23,38 @@ variables:
DOCKER_CPUS: "2"
DOCKER_REGISTRY: docker.io
before_script:
- mkdir -p ~/.docker
- echo $DOCKER_CONFIG_JSON | base64 -d > ~/.docker/config.json
- docker system prune -a -f --volumes || true
- apt-get update && apt-get install -y apt-utils && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/*
build:
stage: build
image: docker:20.10.16
image: docker:dind
services:
- name: docker:20.10.16-dind
command: ["--host=tcp://docker:2375", "--tls=false", "--storage-driver=overlay2", "--mtu=1500", "--data-root=/mnt/volume"]
- name: docker:dind
command: ["--tls=false", "--storage-driver=overlay2", "--mtu=1500", "--data-root=/mnt/volume"]
before_script:
- mkdir -p ~/.docker
- echo $DOCKER_CONFIG_JSON | base64 -d > ~/.docker/config.json
- mkdir -p /mnt/volume
- mount /dev/vdb /mnt/volume || echo "Failed to mount /dev/vdb"
- export DOCKER_TMPDIR=/mnt/volume
- docker system prune -a -f --volumes || true
- df -h
after_script:
- docker system prune -a -f
- docker volume prune -f
script:
- docker buildx create --use
- docker buildx build --cache-from=type=registry,ref=22baar1mst/asyst-nlp-grader --no-cache --progress=plain -t 22baar1mst/asyst-nlp-grader:latest -f flask_ml_api/Dockerfile .
- docker build --cache-from=asyst-nlp-grader --no-cache --progress=plain -t asyst-nlp-grader -f flask_ml_api/Dockerfile .
- docker push 22baar1mst/asyst-nlp-grader:latest
only:
- master
cache:
key: build-cache
paths:
- /mnt/volume
timeout: 1h
deploy:
stage: deploy
image: docker:20.10.16
dependencies:
- build
services:
- name: docker:20.10.16-dind
- name: docker:dind
command: ["--tls=false", "--storage-driver=overlay2", "--mtu=1500", "--data-root=/mnt/volume"]
script:
- docker pull 22baar1mst/asyst-nlp-grader:latest
......
FROM debian:bullseye-slim as base
FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime AS builder
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential python3-venv curl && \
build-essential python3-venv && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc /usr/share/man /usr/share/locale
rm -rf /var/lib/apt/lists/*
RUN python3 -m venv /opt/myenv
ENV PATH="/opt/myenv/bin:$PATH"
RUN pip install --no-cache-dir Flask && \
pip install --no-cache-dir pytorch && \
pip install --no-cache-dir matplotlib && \
pip install --no-cache-dir scikit-learn && \
pip install --no-cache-dir transformers && \
pip install --no-cache-dir pandas && \
pip install --no-cache-dir sentence_transformers && \
pip install --no-cache-dir --upgrade setuptools wheel \
rm -rf /root/.cache/pip
WORKDIR /app
COPY . /app
# Install dependencies in smaller steps
RUN pip install --no-cache-dir Flask matplotlib scikit-learn transformers pandas sentence_transformers
RUN pip install --no-cache-dir --upgrade setuptools wheel
FROM base as build
COPY --from=build /opt/myenv /opt/myenv
# Final image
FROM python:3.10-slim
WORKDIR /app
COPY . /app
COPY --from=builder /opt/myenv /opt/myenv
COPY --from=builder /app /app
ENV PATH="/opt/myenv/bin:$PATH"
RUN chown -R www-data:www-data /app && chmod -R 755 /app
EXPOSE 5000
CMD ["/opt/myenv/bin/python", "/app/api.py"]
\ No newline at end of file
CMD ["/opt/myenv/bin/python", "/app/api.py"]
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment