diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 34e0a98..f6923f1 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -22,3 +22,14 @@ jobs: - name: Build release and call executable working-directory: ./backend run: cargo run --release -- --help + + - name: Build and Push template image + uses: docker/build-push-action@v1 # https://github.com/docker/build-push-action + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + dockerfile: Dockerfile + repository: parity/substrate-telemetry-backend + push: ${{ startsWith(github.ref, 'refs/tags/') }} + tags: latest + add_git_labels: true diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index e6f8ebe..052b67b 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -36,3 +36,14 @@ jobs: - name: Build working-directory: ./frontend run: yarn build + + - name: Build and Push template image + uses: docker/build-push-action@v1 # https://github.com/docker/build-push-action + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + dockerfile: Dockerfile + repository: parity/substrate-telemetry-frontend + push: ${{ startsWith(github.ref, 'refs/tags/') }} + tags: latest + add_git_labels: true diff --git a/backend.Dockerfile b/backend.Dockerfile deleted file mode 100644 index bc20c35..0000000 --- a/backend.Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM rust as builder - -WORKDIR /build -COPY ./backend . -RUN cargo build --release - -##################################### -FROM phusion/baseimage:0.11 - -COPY --from=builder /build/target/release/telemetry /usr/local/bin - -EXPOSE 8000 - -ENTRYPOINT [ "telemetry" ] diff --git a/docker-compose.yml b/docker-compose.yml index ed67275..67d807a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,20 +3,21 @@ version: "3" services: telemetry-frontend: build: - dockerfile: frontend.Dockerfile - context: ./ + dockerfile: Dockerfile + context: ./frontend/ # Copy in changes to the ui, so no need to rebuild the images. volumes: - /app/node_modules - ./packages:/app/packages - command: yarn start:frontend ports: - - 3000:3000 + - 3000:80 telemetry-backend: build: - dockerfile: backend.Dockerfile - context: ./ + dockerfile: Dockerfile + context: ./backend/ environment: - PORT=8000 ports: - 8000:8000 + expose: + - 8000 diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 08c47eb..6b1946e 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -24,6 +24,7 @@ COPY --from=builder /opt/builder/env.sh /usr/bin/ RUN apk add --no-cache bash; chmod +x /usr/bin/env.sh COPY --from=builder /opt/builder/nginx/nginx.conf /etc/nginx/nginx.conf +COPY --from=builder /opt/builder/nginx/default /etc/nginx/sites-available/default COPY --from=builder /opt/builder/build /usr/share/nginx/html EXPOSE 80 diff --git a/frontend/nginx/default b/frontend/nginx/default new file mode 100644 index 0000000..b2ad03a --- /dev/null +++ b/frontend/nginx/default @@ -0,0 +1,55 @@ + +## +# You should look at the following URL's in order to grasp a solid understanding +# of Nginx configuration files in order to fully unleash the power of Nginx. +# http://wiki.nginx.org/Pitfalls +# http://wiki.nginx.org/QuickStart +# http://wiki.nginx.org/Configuration +# +# Generally, you will want to move this file somewhere, and start with a clean +# file but keep this around for reference. Or just disable in sites-enabled. +# +# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. +## + +server { + root /usr/share/nginx/html; + + index index.html; + + listen 3000; + listen [::]:3000; + server_name telemetry.polkadot.io localhost; + + location /feed/ { + proxy_pass http://127.0.0.1:8000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + limit_req zone=zone burst=5; + } + + location /submit/ { + proxy_pass http://127.0.0.1:8000; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + limit_req zone=zone burst=5; + } + + location /network_state/ { + proxy_pass http://127.0.0.1:8000; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + limit_req zone=zone burst=5; + } + + location /health/ { + proxy_pass http://127.0.0.1:8000; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + limit_req zone=zone burst=5; + } +}