Skip to content

Commit 3a852a6

Browse files
committed
ci: build and push dev images from the master branch
1 parent 0022655 commit 3a852a6

File tree

5 files changed

+222
-76
lines changed

5 files changed

+222
-76
lines changed

.github/workflows/docker.yaml

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,58 @@ on:
66
pull_request:
77
branches: [ master ]
88

9-
jobs:
10-
build:
9+
env:
10+
DOCKER_IMAGE_NAME: cogstacksystems/cogstack-modelserve
1111

12+
jobs:
13+
lint:
1214
runs-on: ubuntu-latest
1315
container: hadolint/hadolint:latest-debian
1416
steps:
15-
- uses: actions/checkout@v2
17+
- uses: actions/checkout@v4
18+
1619
- name: Lint
17-
run: hadolint --ignore DL3008 --ignore DL3013 --ignore DL3003 --ignore DL4006 docker/**/Dockerfile* docker/mlflow/**/Dockerfile*
20+
run: hadolint --ignore DL3008 --ignore DL3013 --ignore DL3003 --ignore DL4006 docker/Dockerfile* docker/**/Dockerfile* docker/mlflow/**/Dockerfile*
21+
22+
build-and-push:
23+
needs: lint
24+
if: |
25+
github.repository == 'CogStack/CogStack-ModelServe' &&
26+
github.ref == 'refs/heads/master' &&
27+
github.event_name == 'push'
28+
runs-on: ubuntu-latest
29+
concurrency: build-and-push
30+
steps:
31+
- uses: actions/checkout@v4
32+
33+
- name: Set up QEMU
34+
uses: docker/setup-qemu-action@v3
35+
36+
- name: Set up Docker Buildx
37+
uses: docker/setup-buildx-action@v3
38+
39+
- name: Login to Docker Hub
40+
uses: docker/login-action@v3
41+
with:
42+
username: ${{ secrets.DOCKERHUB_USERNAME }}
43+
password: ${{ secrets.DOCKERHUB_TOKEN }}
44+
45+
- name: Cache Docker layers
46+
uses: actions/cache@v4
47+
with:
48+
path: /tmp/.buildx-cache
49+
key: ${{ runner.os }}-buildx-${{ github.sha }}
50+
restore-keys: |
51+
${{ runner.os }}-buildx-
52+
53+
- name: Build and push
54+
uses: docker/build-push-action@v6
55+
with:
56+
platforms: linux/amd64,linux/arm64
57+
context: .
58+
file: docker/Dockerfile
59+
push: true
60+
tags: |
61+
${{ env.DOCKER_IMAGE_NAME }}:dev
62+
cache-from: type=local,src=/tmp/.buildx-cache
63+
cache-to: type=local,dest=/tmp/.buildx-cache,mode=max

docker-compose-dev.yml

Lines changed: 104 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,18 @@ services:
99
extends:
1010
file: ./docker-compose.yml
1111
service: medcat-snomed
12-
image: cogstack-model-serve_medcat-snomed:dev
13-
volumes:
14-
- ${MODEL_PACKAGE_FULL_PATH}:/app/model/model.zip:ro
12+
build:
13+
context: ./
14+
dockerfile: ./docker/medcat-snomed/Dockerfile
15+
args:
16+
- CMS_MODEL_NAME=SNOMED MedCAT model
17+
- CMS_UID=${CMS_UID:-1000}
18+
- CMS_GID=${CMS_GID:-1000}
19+
- HTTP_PROXY=$HTTP_PROXY
20+
- HTTPS_PROXY=$HTTPS_PROXY
21+
- NO_PROXY=$NO_PROXY
22+
image: local-cms-medcat-snomed:do-not-push
23+
container_name: dev-cms-medcat-snomed
1524
environment:
1625
- BASE_MODEL_FULL_PATH=$MODEL_PACKAGE_FULL_PATH
1726
- AWS_ACCESS_KEY_ID=
@@ -31,13 +40,24 @@ services:
3140
- NO_PROXY=localhost
3241
- http_proxy=$HTTP_PROXY
3342
- https_proxy=$HTTPS_PROXY
34-
- NO_PROXY=localhost
43+
- no_proxy=localhost
3544

3645
medcat-icd10:
3746
extends:
3847
file: ./docker-compose.yml
3948
service: medcat-icd10
40-
image: cogstack-model-serve_medcat-icd10:dev
49+
build:
50+
context: ./
51+
dockerfile: ./docker/medcat-icd10/Dockerfile
52+
args:
53+
- CMS_MODEL_NAME=ICD-10 MedCAT model
54+
- CMS_UID=${CMS_UID:-1000}
55+
- CMS_GID=${CMS_GID:-1000}
56+
- HTTP_PROXY=$HTTP_PROXY
57+
- HTTPS_PROXY=$HTTPS_PROXY
58+
- NO_PROXY=$NO_PROXY
59+
image: local-cms-medcat-icd10:do-not-push
60+
container_name: dev-cms-medcat-icd10
4161
environment:
4262
- BASE_MODEL_FULL_PATH=$MODEL_PACKAGE_FULL_PATH
4363
- AWS_ACCESS_KEY_ID=
@@ -57,13 +77,24 @@ services:
5777
- NO_PROXY=localhost
5878
- http_proxy=$HTTP_PROXY
5979
- https_proxy=$HTTPS_PROXY
60-
- NO_PROXY=localhost
80+
- no_proxy=localhost
6181

6282
de-identification:
6383
extends:
6484
file: ./docker-compose.yml
6585
service: de-identification
66-
image: cogstack-model-serve_de-identification:dev
86+
build:
87+
context: ./
88+
dockerfile: ./docker/trf-deid/Dockerfile
89+
args:
90+
- CMS_MODEL_NAME=De-identification model
91+
- CMS_UID=${CMS_UID:-1000}
92+
- CMS_GID=${CMS_GID:-1000}
93+
- HTTP_PROXY=$HTTP_PROXY
94+
- HTTPS_PROXY=$HTTPS_PROXY
95+
- NO_PROXY=$NO_PROXY
96+
image: local-cms-trf-deid:do-not-push
97+
container_name: dev-cms-trf-deid
6798
environment:
6899
- BASE_MODEL_FULL_PATH=$MODEL_PACKAGE_FULL_PATH
69100
- AWS_ACCESS_KEY_ID=
@@ -83,13 +114,24 @@ services:
83114
- NO_PROXY=localhost
84115
- http_proxy=$HTTP_PROXY
85116
- https_proxy=$HTTPS_PROXY
86-
- NO_PROXY=localhost
117+
- no_proxy=localhost
87118

88119
medcat-deid:
89120
extends:
90121
file: ./docker-compose.yml
91122
service: medcat-deid
92-
image: cogstack-model-serve_medcat-deid:dev
123+
build:
124+
context: ./
125+
dockerfile: ./docker/medcat-deid/Dockerfile
126+
args:
127+
- CMS_MODEL_NAME=De-Identification MedCAT model
128+
- CMS_UID=${CMS_UID:-1000}
129+
- CMS_GID=${CMS_GID:-1000}
130+
- HTTP_PROXY=$HTTP_PROXY
131+
- HTTPS_PROXY=$HTTPS_PROXY
132+
- NO_PROXY=$NO_PROXY
133+
image: local-cms-medcat-deid:do-not-push
134+
container_name: dev-cms-medcat-deid
93135
environment:
94136
- BASE_MODEL_FULL_PATH=$MODEL_PACKAGE_FULL_PATH
95137
- AWS_ACCESS_KEY_ID=
@@ -109,13 +151,24 @@ services:
109151
- NO_PROXY=localhost
110152
- http_proxy=$HTTP_PROXY
111153
- https_proxy=$HTTPS_PROXY
112-
- NO_PROXY=localhost
154+
- no_proxy=localhost
113155

114156
medcat-umls:
115157
extends:
116158
file: ./docker-compose.yml
117159
service: medcat-umls
118-
image: cogstack-model-serve_medcat-umls:dev
160+
build:
161+
context: ./
162+
dockerfile: ./docker/medcat-umls/Dockerfile
163+
args:
164+
- CMS_MODEL_NAME=UMLS MedCAT model
165+
- CMS_UID=${CMS_UID:-1000}
166+
- CMS_GID=${CMS_GID:-1000}
167+
- HTTP_PROXY=$HTTP_PROXY
168+
- HTTPS_PROXY=$HTTPS_PROXY
169+
- NO_PROXY=$NO_PROXY
170+
image: local-cms-medcat-umls:do-not-push
171+
container_name: dev-cms-medcat-umls
119172
environment:
120173
- BASE_MODEL_FULL_PATH=$MODEL_PACKAGE_FULL_PATH
121174
- AWS_ACCESS_KEY_ID=
@@ -135,7 +188,47 @@ services:
135188
- NO_PROXY=localhost
136189
- http_proxy=$HTTP_PROXY
137190
- https_proxy=$HTTPS_PROXY
191+
- no_proxy=localhost
192+
193+
huggingface-ner:
194+
extends:
195+
file: ./docker-compose.yml
196+
service: huggingface-ner
197+
build:
198+
context: ./
199+
dockerfile: ./docker/huggingface-ner/Dockerfile
200+
args:
201+
- CMS_MODEL_NAME=Hugging Face NER model
202+
- CMS_UID=${CMS_UID:-1000}
203+
- CMS_GID=${CMS_GID:-1000}
204+
- HTTP_PROXY=$HTTP_PROXY
205+
- HTTPS_PROXY=$HTTPS_PROXY
206+
- NO_PROXY=$NO_PROXY
207+
image: local-cms-huggingface-ner:do-not-push
208+
container_name: dev-cms-huggingface-ner
209+
restart: always
210+
networks:
211+
- cms
212+
environment:
213+
- BASE_MODEL_FULL_PATH=$MODEL_PACKAGE_FULL_PATH
214+
- AWS_ACCESS_KEY_ID=
215+
- AWS_SECRET_ACCESS_KEY=
216+
- MLFLOW_S3_ENDPOINT_URL=
217+
- MLFLOW_TRACKING_URI=${MLFLOW_TRACKING_URI:-file:/tmp/mlruns}
218+
- MLFLOW_TRACKING_USERNAME=
219+
- MLFLOW_TRACKING_PASSWORD=
220+
- MLFLOW_ENABLE_SYSTEM_METRICS_LOGGING=${MLFLOW_ENABLE_SYSTEM_METRICS_LOGGING:-false}
221+
- GELF_INPUT_URI=
222+
- AUTH_USER_ENABLED=${AUTH_USER_ENABLED:-false}
223+
- AUTH_JWT_SECRET=$AUTH_JWT_SECRET
224+
- AUTH_ACCESS_TOKEN_EXPIRE_SECONDS=${AUTH_ACCESS_TOKEN_EXPIRE_SECONDS:-3600}
225+
- AUTH_DATABASE_URL=${AUTH_DATABASE_URL:-sqlite+aiosqlite:///./cms-users.db}
226+
- HTTP_PROXY=$HTTP_PROXY
227+
- HTTPS_PROXY=$HTTPS_PROXY
138228
- NO_PROXY=localhost
229+
- http_proxy=$HTTP_PROXY
230+
- https_proxy=$HTTPS_PROXY
231+
- no_proxy=localhost
139232

140233
volumes:
141234
retrained-models:

0 commit comments

Comments
 (0)