From b665555de6cdfd5a1908ded62ef0b3fca7ab1430 Mon Sep 17 00:00:00 2001 From: Daniel Maricic Date: Fri, 7 Feb 2020 18:27:25 +0100 Subject: [PATCH] working backend on docker (#226) * working backend on docker refactor of the dockerfiles to be more readable and independent. full build of the backend (release only) within docker * read `PORT` to u16 * Only need one `PORT` in the new backend Co-authored-by: Maciej Hirsz <1096222+maciejhirsz@users.noreply.github.com> --- backend.Dockerfile | 11 +++++++++++ backend/src/main.rs | 6 ++++-- docker-compose.yml | 13 +++++-------- Dockerfile => frontend.Dockerfile | 6 ------ 4 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 backend.Dockerfile rename Dockerfile => frontend.Dockerfile (55%) diff --git a/backend.Dockerfile b/backend.Dockerfile new file mode 100644 index 0000000..134882d --- /dev/null +++ b/backend.Dockerfile @@ -0,0 +1,11 @@ +FROM rust + +WORKDIR /app + +COPY ./backend . + +RUN cargo build --release + +EXPOSE 8000 + +ENTRYPOINT [ "./target/release/telemetry" ] \ No newline at end of file diff --git a/backend/src/main.rs b/backend/src/main.rs index 2e1bdd7..3a31f3a 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -86,7 +86,9 @@ fn main() -> std::io::Result<()> { let aggregator = Aggregator::new().start(); let factory = LocatorFactory::new(); let locator = SyncArbiter::start(4, move || factory.create()); - + + let port = std::env::var("PORT").ok().and_then(|v| v.parse().ok()).unwrap_or(8000u16); + HttpServer::new(move || { App::new() .data(aggregator.clone()) @@ -98,7 +100,7 @@ fn main() -> std::io::Result<()> { .service(resource("/network_state/{chain}/{nid}").route(get().to_async(state_route))) .service(resource("/network_state/{chain}/{nid}/").route(get().to_async(state_route))) }) - .bind("0.0.0.0:8000")? + .bind(format!("0.0.0.0:{}", port))? .start(); sys.run() diff --git a/docker-compose.yml b/docker-compose.yml index 5a098c2..ed67275 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,9 +3,9 @@ version: "3" services: telemetry-frontend: build: - dockerfile: Dockerfile + dockerfile: frontend.Dockerfile context: ./ - # Copy in changes to the ui, so no need to rebulld the images. + # Copy in changes to the ui, so no need to rebuild the images. volumes: - /app/node_modules - ./packages:/app/packages @@ -14,12 +14,9 @@ services: - 3000:3000 telemetry-backend: build: - dockerfile: Dockerfile + dockerfile: backend.Dockerfile context: ./ - command: yarn start:backend environment: - - TELEMETRY_SERVER=1024 - - FEED_SERVER=8080 + - PORT=8000 ports: - - 8080:8080 - - 1024:1024 + - 8000:8000 diff --git a/Dockerfile b/frontend.Dockerfile similarity index 55% rename from Dockerfile rename to frontend.Dockerfile index b26e8b4..eeabc1d 100644 --- a/Dockerfile +++ b/frontend.Dockerfile @@ -5,13 +5,7 @@ WORKDIR /app RUN apk add --no-cache python make g++ COPY ./scripts ./scripts -COPY ./backend ./backend COPY ./packages ./packages COPY ./package.json ./yarn.lock ./tsconfig.json ./ RUN yarn - - -# Frontend is exposing 3000 -# Backend is exposing 8080 -# No need for expose, if using docker-compose & docker run -p 3000:3000