From f60b55f181a62affe250be813c6dfb3667305204 Mon Sep 17 00:00:00 2001 From: Michael Hohn Date: Fri, 13 Sep 2024 12:04:30 -0700 Subject: [PATCH] Storate container simplification Only one is really needed for large storage for the dbstore container. The demo containers can contain their own data -- it's small and the containers are made for demonstration anyway. --- client/containers/mrvadata/Dockerfile | 3 -- docker-compose-demo.yml | 58 +++++++++++--------------- notes/docker-demo-container-deps.dot | 41 +++++++++--------- notes/docker-demo-container-deps.pdf | Bin 19539 -> 19115 bytes 4 files changed, 44 insertions(+), 58 deletions(-) diff --git a/client/containers/mrvadata/Dockerfile b/client/containers/mrvadata/Dockerfile index 5971e5a..87dbb98 100644 --- a/client/containers/mrvadata/Dockerfile +++ b/client/containers/mrvadata/Dockerfile @@ -4,11 +4,8 @@ FROM busybox # This data container holds data from existing runs. It cannot be built without # ready data. - # Mirror parts of the host directory structure in the container COPY tmp/dbstore-data /data/mrvacommander/dbstore-data -COPY tmp/scratch /data/mrvacommander/qldbtools/scratch - # Just run sh if this container is ever started CMD ["sh"] diff --git a/docker-compose-demo.yml b/docker-compose-demo.yml index 4f90cfd..3755f5e 100644 --- a/docker-compose-demo.yml +++ b/docker-compose-demo.yml @@ -3,17 +3,34 @@ services: image: ghcr.io/hohn/mrvadata:0.1.24 container_name: mrvadata volumes: - - mrvadata:/data/mrvacommander + - mrvadata:/data/mrvacommander/dbstore-data networks: - backend - client-qldbtools: - image: ghcr.io/hohn/client-qldbtools-container:0.1.24 - volumes: - # data at /data/mrvacommander/qldbtools/scratch - - mrvadata:/data/mrvacommander + dbstore: + image: minio/minio:RELEASE.2024-06-11T03-13-30Z + container_name: dbstore + ports: + - "9000:9000" + - "9001:9001" + env_file: + - path: .env.container + required: true + command: server /data/mrvacommander/dbstore-data --console-address ":9001" depends_on: - mrvadata + # The mrvadata volume has content of ./dbstore-data, so the volume mount + # below is equivalent of this original: + # volumes: + # - ./dbstore-data:/data + volumes: + - mrvadata:/data + networks: + - backend + + client-qldbtools: + image: ghcr.io/hohn/client-qldbtools-container:0.1.24 + # XX: Copy client/qldbtools/scratch into this container networks: - backend @@ -22,10 +39,7 @@ services: # XX: redirect by changing code or using nginx proxy # client.Get(fmt.Sprintf("http://localhost:8080/repos/%s/code-scanning/codeql/variant-analyses/%d", controller, runId), &response) image: ghcr.io/hohn/client-ghmrva-container:0.1.24 - volumes: - - mrvadata:/data/mrvacommander - depends_on: - - mrvadata + # XX: Include codeql in container if needed; no attached storage container. networks: - backend @@ -33,12 +47,9 @@ services: image: ghcr.io/hohn/code-server-initialized:0.1.24 ports: - "9080:9080" - volumes: - - mrvadata:/data/mrvacommander + # XX: Include codeql binary in code-server (if it's not there already) environment: - PASSWORD=mrva - depends_on: - - mrvadata rabbitmq: image: rabbitmq:3-management @@ -75,25 +86,6 @@ services: networks: - backend - dbstore: - image: minio/minio:RELEASE.2024-06-11T03-13-30Z - container_name: dbstore - ports: - - "9000:9000" - - "9001:9001" - env_file: - - path: .env.container - required: true - command: server /data/mrvacommander/dbstore-data --console-address ":9001" - depends_on: - - mrvadata - volumes: - # XX: use multiple storage containers - # data at /data/mrvacommander/dbstore-data - - mrvadata:/data/mrvacommander - networks: - - backend - artifactstore: image: minio/minio:RELEASE.2024-06-11T03-13-30Z container_name: artifactstore diff --git a/notes/docker-demo-container-deps.dot b/notes/docker-demo-container-deps.dot index 71c3397..9acad6d 100644 --- a/notes/docker-demo-container-deps.dot +++ b/notes/docker-demo-container-deps.dot @@ -1,27 +1,24 @@ -digraph docker_compose { - rankdir=LR; - - node [shape=box]; - - mrvadata [label="mrvadata" color=lightblue]; - "client-qldbtools" [label="client-qldbtools" color=lightgreen]; - "client-ghmrva" [label="client-ghmrva" color=lightgreen]; - "code-server" [label="code-server" color=lightgreen]; - rabbitmq [label="rabbitmq" color=lightcoral]; - server [label="server" color=lightcoral]; - dbstore [label="dbstore" color=lightcoral]; - artifactstore [label="artifactstore" color=lightcoral]; - agent [label="agent" color=lightcoral]; - - // Dependencies - "client-qldbtools" -> mrvadata; - "client-ghmrva" -> mrvadata; - "code-server" -> mrvadata; +digraph G { + // Define nodes + mrvadata [label="mrvadata" shape=box]; + client_qldbtools [label="client-qldbtools" shape=box]; + client_ghmrva [label="client-ghmrva" shape=box]; + code_server [label="code-server" shape=box]; + rabbitmq [label="rabbitmq" shape=box]; + server [label="server" shape=box]; + dbstore [label="dbstore" shape=box]; + artifactstore [label="artifactstore" shape=box]; + agent [label="agent" shape=box]; + + // Define edges (dependencies) + server -> rabbitmq; + server -> dbstore; + server -> artifactstore; dbstore -> mrvadata; - "server" -> rabbitmq; - "server" -> dbstore; - "server" -> artifactstore; agent -> rabbitmq; agent -> dbstore; agent -> artifactstore; + + // Define styling + edge [arrowhead=normal]; } diff --git a/notes/docker-demo-container-deps.pdf b/notes/docker-demo-container-deps.pdf index 39b1f1d08e10549cc1b5bbdf7c63849f50f39c55..6a45e16d029d839da15164be3fc9eb812af3b531 100644 GIT binary patch delta 1225 zcmV;)1UCEAm;tMm0gz39mQ8OPIShvH`V~5Q4pvF(`)Z&lP+$+;^{wb3O_OvNb{F|T z`}g~ja>i*VPT*Y_o>-%y^y(q`PS_JZYsN(i`OCe#b!7MceCOX>kiWTi?0?|idwlr!{$>F$5){OyEt^LfzSAJEbLK^h0bZFA&gWT;xRqMf0o70(sh+YDA4j0KG_U3B|k+R?8Mh_94 z+prlIoH+%K(f1gnbqrg`87PQDYt>&qReW3&O_MWQ!%?<>RTI>LJu}(N&R|B-qhRIS zaObOA#%)~6p~y&F&S$r8jwAYo%pE(@usybAQ+5n&3u2T*L%|-2fdw^DVoc&Y&IPdm zmbz$$K^OM}S2=;J$AKCoIybC{l^U_ZD%fJ@o4VrQBB&K*wFufcF_ea?(YZA)%;6PM z7js2D%#Lw?J=LTWWpwGoFtOh`%5xl15;YZHN1=fu+^PUliy`7wz)eD}iZe^aiva}( zcVQ}q;(3xvAW1Raof8%nFigD|%SIjOM2jm`Jk#y3!d%8}T#Z1;sU5OBhA6?@(_v6j zkQxtzDj}78LKn`V55yMdmD(8Ye5H9#rTp^f#&O|)|7a1|rqvhC-|~4go5Q#9R$An# zc2uD}srQPOge5#WLk5AAqp0)W$u2>KBH6GQ-^@`l=|!j<`9dxfk?EF zG&kloP};NVE7FH~YnUi`M=7Z^2(b*ikY z7T-M==hM+ao7wTR&~j2-Xe68G#V&HQMA!BT6#wc~%&;%n-P_p<+{;NI1KIh*%)u@(@J) nfSAGvBA6LHX9LANf#v}K9$pJclPgRe3phA7HVP#rMNdWw=~`e) delta 1699 zcmV;U23+~8l>yV30gz39R?BW1M-aU4SIm(-XguBXz7hxm7|0=sZiWxCEy)Q)2YMj+ z{Z#d=mNJPoLD+_t`|8=As_N<%7x4c|aEPtA&->|d3cl2qBJTN?YRDZYJxDL&{`l3s zy9w_8c@p>E6x@6K{XKp7h&O`!GD&d1IW5K4>_o+t>SA$Ex9-n>DcFae?%nQslH@}O zn$rC7A73Y@W8Fn}4^`HaA0{e!0d@a={J?HxT*HEqAaJiC8r?Cn4~w7iB6DaaC5+{LEw?n9N^1+-{|8zHOzB z1h1I>Ba^mQEd5V^JlNBJ_#O^z8jqis?N}DbTqC}$(Me9eXm@+u>Bt4pW%adnr>Xj= z$TNe)o}K3GRRsIRdnEepMi1*^y(HLK%Dyx%TaxdIj1=D>ga=!wH~UTw2{*n@CsDhz zz$Y&X#G#jtbuNTH>4=W;XW+jl-d}n6UQ+dqd=^|Z7z{Cg^cfdTK1;!k>X8Ait8Y|$ zz|I=3yMeyb!MnO_K}4dRjOPUW)%2GQDX)ZfiWY0mER!*wlHZP&wl>S4!qKc5m6Mq?98}^gy4Gx%N!B+ALPSFu)68+)IrYHz6hqj5 z#lDAc)`8CtRdc`i-M29!u9%)e#3krk(~A{_nhvJNvTX5SdgzR)tXAKvqhYp@?_CeT z!>Wwr+2OGAVtU76yQyIq#rupKkYXmOsaRubC}RwP?29D6OQHc{;-XsFJUbkQ3kcPU zK5c@=Fw@OH-davELr1UUp0RgxFOW@t_o6@(mtqbXL)ecjM~!`uGdoV=4Xh6Z498)X zT$x^Uu$(txyXlpc9G6xEv0>Jte9as&#ZdT)@vU)EU}k|c2!Jq z3d(@9dJxMH(3d18_>gB)Jc-*)zfb=I^()W_3T19&b98cLVQmU!Ze(v_Y6>-zodXI4 zF)}qYv#JBlM1NmvgD@1u-~ANlWlSHYiGONaqz_dnV+^G2+t@>h!3x7j636=OmuPj2 zJl!AX=A6T&ARgTyBVG)eQIF40<0$6Kxe6ZXMU5RDW#{%-<-%Oegz_83DiA$0Sb4 zj>cq{(ky==`7Dq>8d{| zISwcaH@JEBnCOBomMYfk!Floff?r|OD3+