| FROM ghcr.io/aurora-develop/aurora:latest AS builder |
| FROM debian |
| WORKDIR /app |
| COPY --from=builder /app/aurora /app/aurora |
| COPY --from=builder /app/harPool /app/harPool |
| RUN apt-get update -y && apt-get install -y nodejs npm |
| RUN npm install express http-proxy-middleware |
| COPY anakin_proxy_linux_amd64 /app/anakin |
| COPY <<EOF /app/index.js |
| const express = require("express"); |
| const app = express(); |
| const { createProxyMiddleware } = require("http-proxy-middleware"); |
|
|
| function authMiddleware(req, res, next) { |
| res.setHeader('Access-Control-Allow-Origin','*'); |
| res.setHeader('Access-Control-Allow-Headers','*'); |
| if(req.method === "OPTIONS") return res.status(204).end(); |
| |
| if (!process.env.authorization || (req.headers.authorization||req.url).indexOf(process.env.authorization)>-1) { |
| next(); |
| } else { |
| res.status(401).json({ error: 'Unauthorized' }); |
| } |
| } |
|
|
| app.use(authMiddleware); |
|
|
| app.use( |
| "/aurora", |
| createProxyMiddleware({ |
| target: "http://127.0.0.1:8080/", |
| changeOrigin: true, |
| pathRewrite: { |
| '^/aurora': '', |
| }, |
| }) |
| ); |
|
|
| app.use( |
| "/anakin", |
| createProxyMiddleware({ |
| target: "http://127.0.0.1:8000/", |
| changeOrigin: true, |
| pathRewrite: { |
| '^/anakin': '', |
| }, |
| }) |
| ); |
| app.listen(7860, () => console.log(`Example app listening on port ${port}!`)); |
| EOF |
| RUN chmod -R u+rwx,g+rwx,o+rwx /app |
|
|
| CMD /app/aurora & /app/anakin & node /app/index.js |