Skip to content

Commit 33cb194

Browse files
authored
devops: dockerize mcp server (#55)
* devops: Substitute GraphQL API for MCP server * fix: MCP server bind address * devops: Fix memcached healthcheck
1 parent 8ef41bb commit 33cb194

File tree

3 files changed

+38
-10
lines changed

3 files changed

+38
-10
lines changed

docker/Dockerfile

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ WORKDIR /kg-node
44
COPY . .
55
RUN apt-get update && apt-get upgrade -y
66
RUN apt-get install libssl-dev protobuf-compiler -y
7-
RUN CFLAGS='-std=gnu17' cargo build --release --bin sink --bin api
7+
RUN CFLAGS='-std=gnu17' cargo build --release --bin sink --bin mcp-server
88

99
# Run image
1010
FROM debian:bookworm-slim AS run
@@ -34,11 +34,20 @@ CMD ./sink \
3434
--neo4j-user $neo4j_user \
3535
--neo4j-pass $neo4j_pass
3636

37-
# GraphQL API image
38-
FROM run AS api
39-
COPY --from=builder /kg-node/target/release/api .
37+
# # GraphQL API image
38+
# FROM run AS api
39+
# COPY --from=builder /kg-node/target/release/api .
4040

41-
CMD ./api \
41+
# CMD ./api \
42+
# --neo4j-uri $neo4j_uri \
43+
# --neo4j-user $neo4j_user \
44+
# --neo4j-pass $neo4j_pass
45+
46+
# MCP server image
47+
FROM run AS mcp
48+
COPY --from=builder /kg-node/target/release/mcp-server .
49+
50+
CMD ./mcp-server \
4251
--neo4j-uri $neo4j_uri \
4352
--neo4j-user $neo4j_user \
4453
--neo4j-pass $neo4j_pass

docker/docker-compose.yaml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
services:
22
memcached:
3-
image: memcached:latest
3+
image: memcached:alpine
44
ports:
55
- "11211:11211"
66
healthcheck:
7-
test: echo "version" | (exec 3<>/dev/tcp/localhost/11211; cat >&3; timeout 0.1 cat <&3; exec 3<&-)
7+
test: echo "version" | nc -vn -w 1 127.0.0.1 11211
88
interval: 1s
99
timeout: 10s
1010
retries: 20
@@ -53,11 +53,30 @@ services:
5353
SUBSTREAMS_START_BLOCK: ${SUBSTREAMS_START_BLOCK}
5454
memcached_uri: memcached:11211
5555
memcached_default_expiry: "3600"
56-
api:
56+
# api:
57+
# build:
58+
# context: ..
59+
# dockerfile: docker/Dockerfile
60+
# target: api
61+
# ports:
62+
# - "80:8080"
63+
# depends_on:
64+
# neo4j:
65+
# condition: service_healthy
66+
# memcached:
67+
# condition: service_healthy
68+
# environment:
69+
# neo4j_uri: neo4j://neo4j:7687
70+
# neo4j_user: neo4j
71+
# neo4j_pass: neo4j
72+
# memcached_uri: memcached:11211
73+
# memcached_default_expiry: "3600"
74+
75+
mcp:
5776
build:
5877
context: ..
5978
dockerfile: docker/Dockerfile
60-
target: api
79+
target: mcp
6180
ports:
6281
- "80:8080"
6382
depends_on:

mcp-server/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use tracing_subscriber::{
2222
{self},
2323
};
2424

25-
const BIND_ADDRESS: &str = "127.0.0.1:8000";
25+
const BIND_ADDRESS: &str = "0.0.0.0:8080";
2626

2727
#[tokio::main]
2828
async fn main() -> anyhow::Result<()> {

0 commit comments

Comments
 (0)