summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dockerignore5
-rw-r--r--client/img/atlas.png.bakbin5670 -> 0 bytes
-rw-r--r--deployments/docker/Dockerfile19
-rw-r--r--server/src/routes.rs7
4 files changed, 22 insertions, 9 deletions
diff --git a/.dockerignore b/.dockerignore
index fa3945f..fa5cb4c 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,3 +1,6 @@
/deployments
-/target
+/server/target
+/client/node_modules
+/client/package.json
+/client/package-lock.json
/.git
diff --git a/client/img/atlas.png.bak b/client/img/atlas.png.bak
deleted file mode 100644
index 3cb5dfc..0000000
--- a/client/img/atlas.png.bak
+++ /dev/null
Binary files differ
diff --git a/deployments/docker/Dockerfile b/deployments/docker/Dockerfile
index 0565b6b..b189e13 100644
--- a/deployments/docker/Dockerfile
+++ b/deployments/docker/Dockerfile
@@ -1,16 +1,23 @@
-FROM rust:alpine AS builder
+FROM rust:alpine AS builder-rs
-COPY Cargo.toml Cargo.lock /app/
-COPY src /app/src
+COPY server/Cargo.toml server/Cargo.lock /app/
+COPY server/src /app/src
WORKDIR /app
RUN apk add musl-dev
RUN cargo build --release
+FROM node:alpine AS builder-ts
+COPY client /app/
+WORKDIR /app
+RUN npm install typescript
+RUN npx tsc
+
FROM alpine
RUN apk add --no-cache tini
-
RUN adduser -DH block
USER block
-COPY --from=builder /app/target/release/rollback /rollback
-COPY client /client
+COPY --from=builder-rs /app/target/release/rollback /rollback
+COPY --from=builder-ts /app /client
+
+ENV CLIENT_DIR=/client
ENTRYPOINT ["/sbin/tini", "--", "/rollback"]
diff --git a/server/src/routes.rs b/server/src/routes.rs
index a8c96a3..ca55c8f 100644
--- a/server/src/routes.rs
+++ b/server/src/routes.rs
@@ -11,12 +11,15 @@ use super::rooms;
pub fn routes() -> Router {
let room_server: rooms::RoomService = rooms::start_room_server();
-
+
+ let client_dir = std::env::var("CLIENT_DIR").unwrap_or_else(|_| String::from("./client"));
+ println!("Service client data from: {client_dir}");
+
Router::new()
.route("/api/check", get(|| async {"ok"}))
.route("/api/exists/:code", get(game_exists))
.route("/api/join/:code", get(game_join))
- .nest_service("/", ServeDir::new("../client"))
+ .nest_service("/", ServeDir::new(client_dir))
.layer(Extension(room_server))
}