diff --git a/dockercoins/docker-compose.yml b/dockercoins/compose.yml similarity index 67% rename from dockercoins/docker-compose.yml rename to dockercoins/compose.yml index ebfc81a8..3a877bb4 100644 --- a/dockercoins/docker-compose.yml +++ b/dockercoins/compose.yml @@ -1,26 +1,24 @@ -version: "2" - services: + rng: build: rng ports: - - "8001:80" + - "8001:80" hasher: build: hasher ports: - - "8002:80" + - "8002:80" webui: build: webui ports: - - "8000:80" + - "8000:80" volumes: - - "./webui/files/:/files/" + - "./webui/files/:/files/" redis: image: redis worker: build: worker - diff --git a/dockercoins/hasher/Dockerfile b/dockercoins/hasher/Dockerfile index 707ecd12..79c08ef7 100644 --- a/dockercoins/hasher/Dockerfile +++ b/dockercoins/hasher/Dockerfile @@ -1,7 +1,8 @@ FROM ruby:alpine +WORKDIR /app RUN apk add --update build-base curl RUN gem install sinatra --version '~> 3' -RUN gem install thin --version '~> 1' -ADD hasher.rb / -CMD ["ruby", "hasher.rb"] +RUN gem install thin +COPY hasher.rb . +CMD ["ruby", "hasher.rb", "-o", "::"] EXPOSE 80 diff --git a/dockercoins/hasher/hasher.rb b/dockercoins/hasher/hasher.rb index 28a929f3..79b570b9 100644 --- a/dockercoins/hasher/hasher.rb +++ b/dockercoins/hasher/hasher.rb @@ -2,7 +2,6 @@ require 'digest' require 'sinatra' require 'socket' -set :bind, '0.0.0.0' set :port, 80 post '/' do diff --git a/dockercoins/rng/Dockerfile b/dockercoins/rng/Dockerfile index 34cf43b2..ec58a56a 100644 --- a/dockercoins/rng/Dockerfile +++ b/dockercoins/rng/Dockerfile @@ -1,5 +1,7 @@ FROM python:alpine +WORKDIR /app RUN pip install Flask -COPY rng.py / -CMD ["python", "rng.py"] +COPY rng.py . +ENV FLASK_APP=rng FLASK_RUN_HOST=:: FLASK_RUN_PORT=80 +CMD ["flask", "run"] EXPOSE 80 diff --git a/dockercoins/rng/rng.py b/dockercoins/rng/rng.py index b327e922..713dc330 100644 --- a/dockercoins/rng/rng.py +++ b/dockercoins/rng/rng.py @@ -28,5 +28,5 @@ def rng(how_many_bytes): if __name__ == "__main__": - app.run(host="0.0.0.0", port=80, threaded=False) + app.run(port=80) diff --git a/dockercoins/webui/Dockerfile b/dockercoins/webui/Dockerfile index 7667bb70..97487521 100644 --- a/dockercoins/webui/Dockerfile +++ b/dockercoins/webui/Dockerfile @@ -1,7 +1,8 @@ -FROM node:4-slim -RUN npm install express@4 -RUN npm install redis@3 -COPY files/ /files/ -COPY webui.js / +FROM node:23-alpine +WORKDIR /app +RUN npm install express +RUN npm install morgan +RUN npm install redis@5 +COPY . . CMD ["node", "webui.js"] EXPOSE 80 diff --git a/dockercoins/webui/webui.js b/dockercoins/webui/webui.js index 5b2bdc5e..eb5f17e0 100644 --- a/dockercoins/webui/webui.js +++ b/dockercoins/webui/webui.js @@ -1,26 +1,34 @@ -var express = require('express'); -var app = express(); -var redis = require('redis'); +import express from 'express'; +import morgan from 'morgan'; +import { createClient } from 'redis'; -var client = redis.createClient(6379, 'redis'); -client.on("error", function (err) { - console.error("Redis error", err); -}); +var client = await createClient({ + url: "redis://redis", + socket: { + family: 0 + } +}) + .on("error", function (err) { + console.error("Redis error", err); + }) + .connect(); + +var app = express(); + +app.use(morgan('common')); app.get('/', function (req, res) { res.redirect('/index.html'); }); -app.get('/json', function (req, res) { - client.hlen('wallet', function (err, coins) { - client.get('hashes', function (err, hashes) { - var now = Date.now() / 1000; - res.json( { - coins: coins, - hashes: hashes, - now: now - }); - }); +app.get('/json', async(req, res) => { + var coins = await client.hLen('wallet'); + var hashes = await client.get('hashes'); + var now = Date.now() / 1000; + res.json({ + coins: coins, + hashes: hashes, + now: now }); }); diff --git a/dockercoins/worker/Dockerfile b/dockercoins/worker/Dockerfile index cfdc0747..bed40453 100644 --- a/dockercoins/worker/Dockerfile +++ b/dockercoins/worker/Dockerfile @@ -1,5 +1,6 @@ FROM python:alpine +WORKDIR /app RUN pip install redis RUN pip install requests -COPY worker.py / +COPY worker.py . CMD ["python", "worker.py"]