diff --git a/api-server/Dockerfile b/api-server/Dockerfile index fcfa908..21c32f3 100644 --- a/api-server/Dockerfile +++ b/api-server/Dockerfile @@ -1,12 +1,21 @@ FROM python:3.11-slim-bookworm +ENV \ + PATH=/venv/bin:$PATH + +EXPOSE 3000 + WORKDIR /app COPY ./app . -# fetch go libs and build the binary with debug information removed RUN \ + python -m venv /venv && \ pip install -r requirements.txt WORKDIR /app +# start shell script when container starts ENTRYPOINT ["/app/run.sh"] + +# no additional parameters to run.sh script +CMD [] diff --git a/img/dockerizacija.excalidraw b/img/dockerizacija.excalidraw new file mode 100644 index 0000000..04c30d4 --- /dev/null +++ b/img/dockerizacija.excalidraw @@ -0,0 +1,1642 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "qrvX2_Ljra-KNVEIIh3RE", + "type": "rectangle", + "x": 855.7646845005256, + "y": -5001.069624727156, + "width": 1423.1111653645835, + "height": 102.22222222222263, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1877825951, + "version": 256, + "versionNonce": 528506929, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "ZfvfGDa8KilX6Gf8LPij3" + } + ], + "updated": 1704964771132, + "link": null, + "locked": false + }, + { + "id": "ZfvfGDa8KilX6Gf8LPij3", + "type": "text", + "x": 2147.313349865109, + "y": -4971.558513616045, + "width": 126.5625, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1399182289, + "version": 238, + "versionNonce": 1607663345, + "isDeleted": false, + "boundElements": null, + "updated": 1704964801500, + "link": null, + "locked": false, + "text": "Layer ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "qrvX2_Ljra-KNVEIIh3RE", + "originalText": "Layer ", + "lineHeight": 1.2 + }, + { + "id": "j7v1bHDlku7VSQGZDFGnE", + "type": "rectangle", + "x": 856.6536276428865, + "y": -4707.069685762313, + "width": 1423.1111653645835, + "height": 156.3110975477434, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 605321183, + "version": 537, + "versionNonce": 971596081, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "K-q9EPzaaH-vLUY5wrRbk" + } + ], + "updated": 1704964749025, + "link": null, + "locked": false + }, + { + "id": "K-q9EPzaaH-vLUY5wrRbk", + "type": "text", + "x": 2148.20229300747, + "y": -4650.514136988441, + "width": 126.5625, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 796309905, + "version": 516, + "versionNonce": 698701777, + "isDeleted": false, + "boundElements": null, + "updated": 1704964808203, + "link": null, + "locked": false, + "text": "Layer ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "j7v1bHDlku7VSQGZDFGnE", + "originalText": "Layer ", + "lineHeight": 1.2 + }, + { + "id": "653OONGaSTfcUZ7r3HihI", + "type": "rectangle", + "x": 856.6536276428865, + "y": -4537.069753579154, + "width": 1423.1111653645835, + "height": 72.75552842881943, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1874502271, + "version": 634, + "versionNonce": 1835537169, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "56sMYWsNqpdd0h17YtBEN" + } + ], + "updated": 1704964749025, + "link": null, + "locked": false + }, + { + "id": "56sMYWsNqpdd0h17YtBEN", + "type": "text", + "x": 2148.20229300747, + "y": -4522.291989364744, + "width": 126.5625, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2023098609, + "version": 612, + "versionNonce": 594361713, + "isDeleted": false, + "boundElements": null, + "updated": 1704964810312, + "link": null, + "locked": false, + "text": "Layer ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "653OONGaSTfcUZ7r3HihI", + "originalText": "Layer ", + "lineHeight": 1.2 + }, + { + "id": "BRqzl1Zr6eYvXrUFQRvxI", + "type": "rectangle", + "x": 856.6536276428862, + "y": -4447.958628904674, + "width": 1423.1111653645835, + "height": 72.75552842881943, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1906323775, + "version": 664, + "versionNonce": 99977457, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "C1Xps43QBT_xR_pVjWgV7" + } + ], + "updated": 1704964749025, + "link": null, + "locked": false + }, + { + "id": "C1Xps43QBT_xR_pVjWgV7", + "type": "text", + "x": 2148.20229300747, + "y": -4433.180864690264, + "width": 126.5625, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 480626225, + "version": 641, + "versionNonce": 1904183057, + "isDeleted": false, + "boundElements": null, + "updated": 1704964812347, + "link": null, + "locked": false, + "text": "Layer ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "BRqzl1Zr6eYvXrUFQRvxI", + "originalText": "Layer ", + "lineHeight": 1.2 + }, + { + "id": "24tb9ERtG5umQ9_GLCsuE", + "type": "rectangle", + "x": 856.6536276428862, + "y": -4881.069753579153, + "width": 1423.1111653645835, + "height": 67.33333333333394, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 726859647, + "version": 810, + "versionNonce": 1575887359, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "TNuzyj9ROOYfVXuLsjrZF" + } + ], + "updated": 1704964785993, + "link": null, + "locked": false + }, + { + "id": "TNuzyj9ROOYfVXuLsjrZF", + "type": "text", + "x": 2148.20229300747, + "y": -4869.003086912487, + "width": 126.5625, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 654179313, + "version": 789, + "versionNonce": 26917009, + "isDeleted": false, + "boundElements": null, + "updated": 1704964804035, + "link": null, + "locked": false, + "text": "Layer ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "24tb9ERtG5umQ9_GLCsuE", + "originalText": "Layer ", + "lineHeight": 1.2 + }, + { + "id": "BwreMPLxIPVYWIxAYMAgP", + "type": "rectangle", + "x": 856.6536276428862, + "y": -4795.514198023598, + "width": 1423.1111653645835, + "height": 72.75552842881943, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1499914015, + "version": 834, + "versionNonce": 795525297, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "CvOxRuo1zaezfGMbZdS_A" + } + ], + "updated": 1704964749026, + "link": null, + "locked": false + }, + { + "id": "CvOxRuo1zaezfGMbZdS_A", + "type": "text", + "x": 2148.20229300747, + "y": -4780.7364338091875, + "width": 126.5625, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2085709393, + "version": 809, + "versionNonce": 776820273, + "isDeleted": false, + "boundElements": null, + "updated": 1704964806114, + "link": null, + "locked": false, + "text": "Layer ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "BwreMPLxIPVYWIxAYMAgP", + "originalText": "Layer ", + "lineHeight": 1.2 + }, + { + "id": "JdkOjhwODVLPFEZzDZBAv", + "type": "rectangle", + "x": 774.3958929151345, + "y": -6431.653104386201, + "width": 519.5499169963189, + "height": 305.31996492627934, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 781289905, + "version": 641, + "versionNonce": 2068491039, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "aXcQxDqmK_9eZEeocNy0G" + }, + { + "id": "293EmZSvigcgmtlQXSTjS", + "type": "arrow" + } + ], + "updated": 1704965311619, + "link": null, + "locked": false + }, + { + "id": "aXcQxDqmK_9eZEeocNy0G", + "type": "text", + "x": 947.5008227267704, + "y": -6301.493121923061, + "width": 173.34005737304688, + "height": 45, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 886899775, + "version": 602, + "versionNonce": 69594943, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "Dockerfile", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 31, + "containerId": "JdkOjhwODVLPFEZzDZBAv", + "originalText": "Dockerfile", + "lineHeight": 1.25 + }, + { + "id": "haMXFSnMO8gMQeVfA1mYn", + "type": "rectangle", + "x": 1593.932515947401, + "y": -6434.936092112358, + "width": 589.5541708855505, + "height": 306.1633772674533, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1701302737, + "version": 435, + "versionNonce": 1492413311, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Yhu8TqpDJhg73QiO-J0eU" + }, + { + "id": "293EmZSvigcgmtlQXSTjS", + "type": "arrow" + }, + { + "id": "23nWyuHJwWA5c-z3ZYUBK", + "type": "arrow" + }, + { + "id": "xDE6Btwuty_hGQcTh9PSe", + "type": "arrow" + }, + { + "id": "YlB0aTdJzwqedAO9CAM-t", + "type": "arrow" + }, + { + "id": "62r2wX2y-s3BkDnxt5-sW", + "type": "arrow" + }, + { + "id": "2f53uacHfWEQNVk2uw0rn", + "type": "arrow" + } + ], + "updated": 1704965311619, + "link": null, + "locked": false + }, + { + "id": "Yhu8TqpDJhg73QiO-J0eU", + "type": "text", + "x": 1836.635581004434, + "y": -6304.354403478632, + "width": 104.14804077148438, + "height": 45, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1292565073, + "version": 374, + "versionNonce": 460891039, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "Image", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 31, + "containerId": "haMXFSnMO8gMQeVfA1mYn", + "originalText": "Image", + "lineHeight": 1.25 + }, + { + "id": "j9YVFS-xyuoCdQLy0yQLf", + "type": "rectangle", + "x": 2547.846480864964, + "y": -6747.003387942148, + "width": 583.6500914526218, + "height": 249.65384953347916, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 2091001969, + "version": 155, + "versionNonce": 1145158783, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "LNuhBnumjFE0U50lmdxNj" + }, + { + "id": "YlB0aTdJzwqedAO9CAM-t", + "type": "arrow" + } + ], + "updated": 1704965311619, + "link": null, + "locked": false + }, + { + "id": "LNuhBnumjFE0U50lmdxNj", + "type": "text", + "x": 2757.5914942426425, + "y": -6644.676463175409, + "width": 164.16006469726562, + "height": 45, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1790387313, + "version": 136, + "versionNonce": 854840479, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "Container", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 31, + "containerId": "j9YVFS-xyuoCdQLy0yQLf", + "originalText": "Container", + "lineHeight": 1.25 + }, + { + "id": "q1_157yMHZ7nYIXTwLh4_", + "type": "rectangle", + "x": 2562.0636069190714, + "y": -6319.507940759687, + "width": 583.6500914526218, + "height": 249.65384953347916, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 244686033, + "version": 209, + "versionNonce": 1221621983, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "qQ9MUotmAfEOT-MyRtoe4" + }, + { + "id": "23nWyuHJwWA5c-z3ZYUBK", + "type": "arrow" + } + ], + "updated": 1704965311619, + "link": null, + "locked": false + }, + { + "id": "qQ9MUotmAfEOT-MyRtoe4", + "type": "text", + "x": 2771.8086202967497, + "y": -6217.181015992947, + "width": 164.16006469726562, + "height": 45, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 79434943, + "version": 189, + "versionNonce": 1126958335, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "Container", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 31, + "containerId": "q1_157yMHZ7nYIXTwLh4_", + "originalText": "Container", + "lineHeight": 1.25 + }, + { + "id": "YKIeP1_EKE6TQV-X59T57", + "type": "rectangle", + "x": 2550.134499959126, + "y": -5884.42155728783, + "width": 583.6500914526218, + "height": 249.65384953347916, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 478696593, + "version": 233, + "versionNonce": 910168383, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "U3ZOOrFNZdy6iqbQ054mr" + }, + { + "id": "xDE6Btwuty_hGQcTh9PSe", + "type": "arrow" + } + ], + "updated": 1704965311619, + "link": null, + "locked": false + }, + { + "id": "U3ZOOrFNZdy6iqbQ054mr", + "type": "text", + "x": 2759.8795133368044, + "y": -5782.094632521091, + "width": 164.16006469726562, + "height": 45, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 239188223, + "version": 212, + "versionNonce": 600412511, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "Container", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 31, + "containerId": "YKIeP1_EKE6TQV-X59T57", + "originalText": "Container", + "lineHeight": 1.25 + }, + { + "id": "293EmZSvigcgmtlQXSTjS", + "type": "arrow", + "x": 1294.9458099114536, + "y": -6280.440001220956, + "width": 296.4565333606631, + "height": 2.910843062499225, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 421566929, + "version": 1800, + "versionNonce": 1791866193, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311638, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 296.4565333606631, + 2.910843062499225 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "JdkOjhwODVLPFEZzDZBAv", + "focus": -0.02581892708533908, + "gap": 1.000000000000341 + }, + "endBinding": { + "elementId": "haMXFSnMO8gMQeVfA1mYn", + "focus": -0.04644586049306755, + "gap": 2.530172675284348 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "YlB0aTdJzwqedAO9CAM-t", + "type": "arrow", + "x": 2184.486686832952, + "y": -6381.336279862156, + "width": 360.82936396377954, + "height": 262.38729201711556, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 156945631, + "version": 828, + "versionNonce": 246109457, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311638, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 360.82936396377954, + -262.38729201711556 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "haMXFSnMO8gMQeVfA1mYn", + "focus": 0.3146137903552555, + "gap": 1 + }, + "endBinding": { + "elementId": "j9YVFS-xyuoCdQLy0yQLf", + "focus": 0.6990238114227548, + "gap": 2.530430068233045 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "23nWyuHJwWA5c-z3ZYUBK", + "type": "arrow", + "x": 2184.486686832952, + "y": -6267.270206760262, + "width": 376.57692008612, + "height": 66.41987895078012, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 531314961, + "version": 935, + "versionNonce": 1945371857, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311638, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 376.57692008612, + 66.41987895078012 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "haMXFSnMO8gMQeVfA1mYn", + "focus": -0.18327234336695364, + "gap": 1 + }, + "endBinding": { + "elementId": "q1_157yMHZ7nYIXTwLh4_", + "focus": -0.2579636012862555, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "xDE6Btwuty_hGQcTh9PSe", + "type": "arrow", + "x": 2184.486686832952, + "y": -6165.895565153287, + "width": 364.20301332847566, + "height": 451.2773753936365, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 350201919, + "version": 956, + "versionNonce": 1730397329, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311639, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 364.20301332847566, + 451.2773753936365 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "haMXFSnMO8gMQeVfA1mYn", + "focus": -0.4833425768218465, + "gap": 1 + }, + "endBinding": { + "elementId": "YKIeP1_EKE6TQV-X59T57", + "focus": -0.8395215557951123, + "gap": 1.4447997976983515 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "3uWkch4VzLyBZ7MONmTSf", + "type": "text", + "x": 1394.8841147149678, + "y": -6337.09871617849, + "width": 76.57203674316406, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 700617361, + "version": 147, + "versionNonce": 2145041951, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "build", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": "build", + "lineHeight": 1.25 + }, + { + "id": "xZvxGnh9Rc0-RnULeWchA", + "type": "text", + "x": 2286.3845368138645, + "y": -6566.510412130845, + "width": 52.74003601074219, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1913474993, + "version": 170, + "versionNonce": 1127981631, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "run", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": "run", + "lineHeight": 1.25 + }, + { + "id": "Ju9kIS0FllCaof30SX3uR", + "type": "text", + "x": 2363.136282477199, + "y": -6294.084043296247, + "width": 52.74003601074219, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 99639569, + "version": 177, + "versionNonce": 220922463, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "run", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": "run", + "lineHeight": 1.25 + }, + { + "id": "1rSmLPL6hdk2hknND92-P", + "type": "text", + "x": 2390.9692114771256, + "y": -5972.6936556754445, + "width": 52.74003601074219, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 249337457, + "version": 161, + "versionNonce": 2121883263, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "run", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": "run", + "lineHeight": 1.25 + }, + { + "id": "QRVPluDx7beWXdVh93j7B", + "type": "text", + "x": 3162.431486800873, + "y": -6655.958405109098, + "width": 107.53202819824219, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1067249841, + "version": 84, + "versionNonce": 1239889567, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": ":3000", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": ":3000", + "lineHeight": 1.25 + }, + { + "id": "Mjjrdrt89IDEQryaPWrdp", + "type": "text", + "x": 3174.876148259206, + "y": -6221.291690970644, + "width": 92.52001953125, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 688181713, + "version": 90, + "versionNonce": 1982139071, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": ":3001", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": ":3001", + "lineHeight": 1.25 + }, + { + "id": "UilvMFFdG_FA0_r__g7Zg", + "type": "text", + "x": 3165.0983162279563, + "y": -5786.624942923768, + "width": 108.39602661132812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1942810289, + "version": 131, + "versionNonce": 1607686879, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": ":3002", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": ":3002", + "lineHeight": 1.25 + }, + { + "id": "xbA-QjKdNdopfAYc48n53", + "type": "rectangle", + "x": 1535.7648879510461, + "y": -7221.291707924851, + "width": 760.0000678168401, + "height": 430.2222188313799, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 120726591, + "version": 490, + "versionNonce": 2072159999, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Dob6znW1XYqyFRIykVBl_" + }, + { + "id": "2f53uacHfWEQNVk2uw0rn", + "type": "arrow" + }, + { + "id": "62r2wX2y-s3BkDnxt5-sW", + "type": "arrow" + } + ], + "updated": 1704965311619, + "link": null, + "locked": false + }, + { + "id": "Dob6znW1XYqyFRIykVBl_", + "type": "text", + "x": 1844.6288973843684, + "y": -7028.680598509161, + "width": 142.2720489501953, + "height": 45, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 349229823, + "version": 422, + "versionNonce": 1471377183, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "Registry", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 31, + "containerId": "xbA-QjKdNdopfAYc48n53", + "originalText": "Registry", + "lineHeight": 1.25 + }, + { + "id": "2f53uacHfWEQNVk2uw0rn", + "type": "arrow", + "x": 1946.7321671376617, + "y": -6437.291718097378, + "width": 72.42928871218328, + "height": 351.11114501953307, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 512742225, + "version": 736, + "versionNonce": 1169593425, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311639, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 72.42928871218328, + -351.11114501953307 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "haMXFSnMO8gMQeVfA1mYn", + "focus": 0.0795390924648649, + "gap": 2.355625985019742 + }, + "endBinding": { + "elementId": "xbA-QjKdNdopfAYc48n53", + "focus": -0.34950507458498903, + "gap": 2.6666259765602263 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "62r2wX2y-s3BkDnxt5-sW", + "type": "arrow", + "x": 1733.5841410791672, + "y": -6787.51391997455, + "width": 52.01588100730646, + "height": 346.6666327582461, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 942254527, + "version": 696, + "versionNonce": 1042838545, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311639, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 52.01588100730646, + 346.6666327582461 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "xbA-QjKdNdopfAYc48n53", + "focus": 0.5214722955486105, + "gap": 3.5555691189215395 + }, + "endBinding": { + "elementId": "haMXFSnMO8gMQeVfA1mYn", + "focus": -0.24942335266993354, + "gap": 5.911195103945374 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "77Io3QYGj-xKGke7HF3lV", + "type": "text", + "x": 2007.7651456550395, + "y": -6639.0696043821, + "width": 75.52803039550781, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1737011487, + "version": 234, + "versionNonce": 2070879167, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "push", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": "push", + "lineHeight": 1.25 + }, + { + "id": "FCfe7FNYiV8H4uoD8dcZd", + "type": "text", + "x": 1664.6538446567754, + "y": -6627.513886066129, + "width": 57.13201904296875, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 530835825, + "version": 192, + "versionNonce": 867388383, + "isDeleted": false, + "boundElements": null, + "updated": 1704965311619, + "link": null, + "locked": false, + "text": "pull", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 31, + "containerId": null, + "originalText": "pull", + "lineHeight": 1.25 + }, + { + "id": "bQhWvR_NzNYnZXmyuSB73", + "type": "rectangle", + "x": 854.8759448086848, + "y": -5093.73628461214, + "width": 1424.888848198785, + "height": 65.77779134114553, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1908802239, + "version": 160, + "versionNonce": 1052573105, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "WLaNid1BQGKHmmAYB3iO1" + } + ], + "updated": 1704964619874, + "link": null, + "locked": false + }, + { + "id": "WLaNid1BQGKHmmAYB3iO1", + "type": "text", + "x": 2042.7335430074697, + "y": -5082.447388941567, + "width": 232.03125, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1917391953, + "version": 133, + "versionNonce": 1814968063, + "isDeleted": false, + "boundElements": null, + "updated": 1704964815637, + "link": null, + "locked": false, + "text": "Base image ", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "right", + "verticalAlign": "middle", + "baseline": 34, + "containerId": "bQhWvR_NzNYnZXmyuSB73", + "originalText": "Base image ", + "lineHeight": 1.2 + }, + { + "id": "OQ-nme5-fJ2FnTsqyXwVx", + "type": "text", + "x": 882.4316224345532, + "y": -5081.291792695907, + "width": 738.28125, + "height": 734.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2088509169, + "version": 77, + "versionNonce": 457508977, + "isDeleted": false, + "boundElements": null, + "updated": 1704964761846, + "link": null, + "locked": false, + "text": "FROM python:3.11-slim-bookworm\n\nENV \\\n PATH=/venv/bin:$PATH\n\nWORKDIR /app\n\nCOPY ./app .\n\nRUN \\\n python -m venv /venv && \\\n pip install -r requirements.txt\n\nWORKDIR /app\n\nENTRYPOINT [\"/app/run.sh\"]\n", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 726, + "containerId": null, + "originalText": "FROM python:3.11-slim-bookworm\n\nENV \\\n PATH=/venv/bin:$PATH\n\nWORKDIR /app\n\nCOPY ./app .\n\nRUN \\\n python -m venv /venv && \\\n pip install -r requirements.txt\n\nWORKDIR /app\n\nENTRYPOINT [\"/app/run.sh\"]\n", + "lineHeight": 1.2 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file