From cc9c1553911706bde92ae5691afddf91da10b8ca Mon Sep 17 00:00:00 2001 From: sevenzing <41516657+sevenzing@users.noreply.github.com> Date: Sun, 19 Jul 2020 14:17:48 +0300 Subject: [PATCH] Running Nginx with the ava client in the same docker container --- .dockerignore | 5 +++++ .env.example | 11 +++++++++++ .gitignore | 1 + Dockerfile | 17 +++++++++++------ docker-compose.yml | 11 +++++++++++ entrypoint.sh | 8 ++++++++ nginx.template | 6 ++++++ 7 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 docker-compose.yml create mode 100644 entrypoint.sh create mode 100644 nginx.template diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8267595 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.env* +docker-compose.yml +Dockerfile +README.md +LICENSE diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..3348800 --- /dev/null +++ b/.env.example @@ -0,0 +1,11 @@ +# Path to ava node +RPC_URL=http://localhost:9650/ext/bc/C/rpc + +# Local path for url-request +LOCAL_URL=/rpc + +# Local port for url-request +NGINX_PORT=4444 + +# Options for binary ava file +AVA_CMD_OPTIONS=--db-dir /db diff --git a/.gitignore b/.gitignore index f8a87c9..fb9af3b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ awscpu *.dylib *.profile +.env # Test binary, build with `go test -c` *.test diff --git a/Dockerfile b/Dockerfile index aa158e4..d82a301 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,16 @@ # syntax=docker/dockerfile:experimental -FROM golang:1.13.4-buster +FROM golang:1.13.4-buster AS builder -RUN mkdir -p /go/src/github.com/ava-labs - -WORKDIR $GOPATH/src/github.com/ava-labs/ +WORKDIR /src/github.com/ava-labs/ COPY . gecko - -WORKDIR $GOPATH/src/github.com/ava-labs/gecko +WORKDIR /src/github.com/ava-labs/gecko RUN ./scripts/build.sh + +FROM nginx:latest + +COPY --from=builder /src/github.com/ava-labs/gecko/build /build +COPY entrypoint.sh nginx.template ./ + +CMD ["/bin/bash", "entrypoint.sh"] + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2d4f3cf --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3" +services: + ava_node: + build: . + image: poanetwork/ava-node + volumes: + - ~/.gecko/db:/db + - ./nginx.template:/etc/nginx/conf.d/nginx.template + ports: + - ${NGINX_PORT}:${NGINX_PORT} + env_file: .env \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..5423639 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +echo "RECREATE NGINX CONFIG" +envsubst < /etc/nginx/conf.d/nginx.template > /etc/nginx/conf.d/default.conf +echo "START NGINX" +service nginx start +echo "START NODE WITH ARGS ${AVA_CMD_OPTIONS}" +./build/ava ${AVA_CMD_OPTIONS} diff --git a/nginx.template b/nginx.template new file mode 100644 index 0000000..15bd955 --- /dev/null +++ b/nginx.template @@ -0,0 +1,6 @@ +server { + listen ${NGINX_PORT}; + location ${LOCAL_URL} { + proxy_pass ${RPC_URL}; + } + } \ No newline at end of file