Skip to content
Snippets Groups Projects
Commit e070466c authored by Andrew Kapuscinski's avatar Andrew Kapuscinski
Browse files

Removed unused docker related files

Renamed docker-compose.local.yml to docker-compose.yml
Renamed Condaless.dockerfile.v2 to Dockerfile.base
Modified references to files that were renamed
parent c7d16ae0
No related branches found
Tags 2.8.0
1 merge request!7Refactored the build stages to modularize the script section of the CI
Pipeline #277 passed
......@@ -3,9 +3,13 @@ stages:
- push-base
- build-dev
# - push-dev
- clean-images
# - deploy-dev
# - deploy-test
variables:
PROJECT_NAME: "workspaces"
image: docker:19.03.12
workflow:
......@@ -18,70 +22,81 @@ before_script:
- echo "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME"
- echo "$CI_COMMIT_REF_NAME"
.build:
script:
- '[ -z "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ] && BRANCH=$CI_COMMIT_BRANCH || BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME'
- echo "Building branch -- ${BRANCH}"
- |
if [ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ] ; then \
docker build -t ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_BRANCH} -f services/${SERVICE_NAME}/Dockerfile.dev . ; \
else
docker build -t ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} -f services/${SERVICE_NAME}/Dockerfile.dev . ; \
fi
- docker tag ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH} ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}
- echo "BRANCH_TAG=$BRANCH" >> build.env
artifacts:
reports:
dotenv: build.env
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: $CI_COMMIT_MESSAGE =~ /\A(?i)Revert/
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- .gitlab-ci.yml
- services/${SERVICE_NAME}/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'
changes:
- Dockerfile.base
.cleanup:
script:
- |
printf "%s\n" "- Removing Images -" \
"${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH_TAG}" \
"${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}"
- docker image rm "${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${BRANCH_TAG}" "${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA}"
# Build Base Image
build base image:
stage: build-base
script:
- docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Condaless.dockerfile.v2 . ; \
- docker build -t ${REGISTRY_URL}/ops/base:${PROJECT_NAME} -f Dockerfile.base . ; \
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'
changes:
- Condaless.dockerfile.v2
- Dockerfile.base
# Push Base Image Stage
push base image:
stage: push-base
script:
- echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $HARBOR_URL
- docker push marconi.aoc.nrao.edu/ops/base:workspaces
- echo "$HARBOR_PASSWORD" | docker login -u "$HARBOR_USER" --password-stdin $REGISTRY_URL
- docker push ${REGISTRY_URL}/ops/base:${PROJECT_NAME}
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
changes:
- Condaless.dockerfile.v2
- Dockerfile.base
when: always
# Build Stages
build dev workflow:
stage: build-dev
script:
- echo "Building PR branch - ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
- docker build -t marconi.aoc.nrao.edu/workspaces/workflow:"$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" -f services/workflow/Dockerfile.dev .
- docker tag marconi.aoc.nrao.edu/workspaces/workflow:"$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" marconi.aoc.nrao.edu/workspaces/workflow:"$CI_COMMIT_SHORT_SHA"
rules:
- if: $CI_COMMIT_MESSAGE =~ /\A(?i)Revert/
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- .gitlab-ci.yml
- services/workflow/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'
changes:
- Condaless.dockerfile.v2
variables:
SERVICE_NAME: "workflow"
extends: .build
build dev capability:
stage: build-dev
script:
- echo "Building PR branch - ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
- docker build -t marconi.aoc.nrao.edu/workspaces/capability:"$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" -f services/capability/Dockerfile.dev .
- docker tag marconi.aoc.nrao.edu/workspaces/capability:"$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" marconi.aoc.nrao.edu/workspaces/capability:"$CI_COMMIT_SHORT_SHA"
rules:
- if: $CI_COMMIT_MESSAGE =~ /\A(?i)Revert/
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- .gitlab-ci.yml
- services/capability/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'
changes:
- Condaless.dockerfile.v2
variables:
SERVICE_NAME: "capability"
extends: .build
# Test Stages
# Push Stages
......@@ -146,11 +161,21 @@ build dev capability:
# when: manual
# Cleanup
# clean runner:
# stage: .post
# script:
# - docker images -q --filter=reference="marconi.aoc.nrao.edu/workspaces/*" | xargs docker rmi -f
clean build workflow:
stage: clean-images
variables:
SERVICE_NAME: "workflow"
extends: .cleanup
dependencies:
- build dev workflow
clean build capability:
stage: clean-images
variables:
SERVICE_NAME: "capability"
extends: .cleanup
dependencies:
- build dev capability
### Deploy Stages ###
......
FROM python:3.8-slim AS common
# Environment variables
ENV PIP_NO_CACHE_DIR false
ENV CAPO_PROFILE docker
# Set up Capo
WORKDIR /root/.capo
COPY docker.properties docker.properties
# Get postgres/mysql development stuff in the image
RUN apt-get update \
&& apt-get install -y libmariadb-dev-compat gcc libpq-dev \
&& rm -rf /var/lib/apt/lists
# Get the code into the image
WORKDIR /code
COPY . .
FROM common AS workflow
EXPOSE 3456
WORKDIR /code/services/workflow
# Python library installation
RUN pip install -r requirements.txt \
&& python setup.py develop
ENTRYPOINT pserve --reload development.ini
FROM common AS capability
EXPOSE 3457
WORKDIR /code/services/capability
# Python library installation
RUN pip install -r requirements.txt \
&& python setup.py develop
ENTRYPOINT pserve --reload development.ini
\ No newline at end of file
# This is nrao:workspaces-base
FROM continuumio/miniconda3
RUN apt-get install make
WORKDIR /code
COPY environment.yml environment.yml
RUN conda env update \
&& conda clean -afy
WORKDIR /root/.capo
COPY docker.properties .
WORKDIR /code
COPY . .
RUN conda run -n data make python-setup-develop
\ No newline at end of file
File moved
......@@ -52,4 +52,4 @@ docker-images:
.PHONY: docker-base
docker-base:
docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Condaless.dockerfile.v2 .
docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Dockerfile.base .
......@@ -10,36 +10,36 @@ make docker-base
```
In the Makefile, this Docker command is run:
```sh
docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Condaless.dockerfile.v2 .
docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Dockerfile.base .
```
This builds a local Docker image tagged as `marconi.aoc.nrao.edu/ops/base:workspaces` on your machine
using the `Condaless.dockerfile.v2` Dockerfile.
using the `Dockerfile.base` Dockerfile.
Once the image has been built, Docker will save this image on your machine. You do not need to run the `make docker-base`
command again unless you delete this image or modify the `Condaless.dockerfile.v2` Dockerfile.
command again unless you delete this image or modify the `Dockerfile.base` Dockerfile.
### Starting Workspaces
To start Workspaces as foreground process, run:
```sh
docker-compose -f docker-compose.local.yml up
docker-compose up
```
To start Workspaces as background process, run:
```sh
docker-compose -f docker-compose.local.yml up -d
docker-compose up -d
```
### Stopping Workspaces
To stop Workspaces, run:
```sh
docker-compose -f docker-compose.local.yml down
docker-compose down
```
### Starting Individual Services
To start Workspaces as foreground process, run:
```sh
docker-compose -f docker-compose.local.yml up <service_name>
docker-compose up <service_name>
```
### List Containers
......
version: '3.8'
services:
db:
image: postgres:12.4
restart: always
ports:
- "54322:5432"
environment:
POSTGRES_USER: archive
POSTGRES_PASSWORD: docker
command: postgres -c listen_addresses=*
amqp:
image: rabbitmq:3.8
restart: always
schema:
build:
context: ./schema/
dockerfile: Dockerfile.local
depends_on:
- db
volumes:
- ./schema:/code/schema
workflow:
build:
context: ./services/workflow/
dockerfile: Dockerfile.local
ports:
- "3456:3456"
depends_on:
- schema
volumes:
- ./services/workflow:/code
- ./shared:/code/src/shared
- ./apps:/code/src/apps
- ./test:/code/src/test
capability:
build:
context: ./services/capability/
dockerfile: Dockerfile.local
ports:
- "3457:3457"
depends_on:
- schema
volumes:
- ./services/capability:/code
- ./shared:/code/src/shared
- ./apps:/code/src/apps
- ./test:/code/src/test
# frontend:
# build:
# context: ./apps/web/
# dockerfile: Dockerfile.local
# ports:
# - "4200:4200"
# volumes:
# - ./apps/web:/code
# - /code/node_modules
version: '3.1'
version: '3.8'
services:
db:
image: postgres:12.4
restart: always
......@@ -17,26 +15,48 @@ services:
restart: always
schema:
image: nrao:schema
build:
context: ./schema/
dockerfile: Dockerfile.local
depends_on:
- db
volumes:
- .:/code
- ./schema:/code/schema
workflow:
image: nrao:workflow
build:
context: ./services/workflow/
dockerfile: Dockerfile.local
ports:
- "3456:3456"
depends_on:
- schema
volumes:
- .:/code
- ./services/workflow:/code
- ./shared:/code/src/shared
- ./apps:/code/src/apps
- ./test:/code/src/test
capability:
image: nrao:capability
build:
context: ./services/capability/
dockerfile: Dockerfile.local
ports:
- "3457:3457"
depends_on:
- schema
volumes:
- .:/code
- ./services/capability:/code
- ./shared:/code/src/shared
- ./apps:/code/src/apps
- ./test:/code/src/test
# frontend:
# build:
# context: ./apps/web/
# dockerfile: Dockerfile.local
# ports:
# - "4200:4200"
# volumes:
# - ./apps/web:/code
# - /code/node_modules
# This file is intended to support the Condaless.dockerfile, not for actual development
# This file is intended to support the Dockerfile.base, not for actual development
# DO NOT MODIFY THIS FILE, THIS IS FOR DOCKER ONLY!
alembic == 1.4
......
# This is nrao:workflow
FROM nrao:workspaces-base
WORKDIR /code/services/capability
RUN conda run -n data python setup.py develop
EXPOSE 3457
ENV CAPO_PROFILE docker
ENV PATH /opt/conda/envs/data/bin:$PATH
ENV CONDA_DEFAULT_ENV data
ENTRYPOINT pserve --reload development.ini
# This file is intended to support the Condaless.dockerfile, not for actual development
# This file is intended to support the Dockerfile.base, not for actual development
# DO NOT MODIFY THIS FILE, THIS IS FOR DOCKER ONLY!
-e ./src/shared/schema
......
# This is nrao:workflow
FROM nrao:workspaces-base
WORKDIR /code/services/workflow
RUN conda run -n data python setup.py develop
EXPOSE 3456
ENV CAPO_PROFILE docker
ENV PATH /opt/conda/envs/data/bin:$PATH
ENV CONDA_DEFAULT_ENV data
ENTRYPOINT pserve --reload development.ini
# This file is intended to support the Condaless.dockerfile, not for actual development
# This file is intended to support the Dockerfile.base, not for actual development
# DO NOT MODIFY THIS FILE, THIS IS FOR DOCKER ONLY!
-e ./src/shared/schema
......
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