1
0
mirror of https://github.com/oceanprotocol/commons.git synced 2023-03-15 18:03:00 +01:00

Merge pull request #61 from oceanprotocol/feature/dockerize

docker-compose + dockerfiles
This commit is contained in:
Jernej Pregelj 2019-04-04 12:06:57 +02:00 committed by GitHub
commit 20e5efe001
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 160 additions and 4 deletions

1
.dockerignore Normal file
View File

@ -0,0 +1 @@
node_modules

1
client/.dockerignore Normal file
View File

@ -0,0 +1 @@
node_modules

47
client/Dockerfile Normal file
View File

@ -0,0 +1,47 @@
FROM node:11-alpine
LABEL maintainer="Ocean Protocol <devops@oceanprotocol.com>"
RUN apk add --no-cache --update\
bash\
g++\
gcc\
git\
gettext\
make\
python
COPY . /app/frontend
WORKDIR /app/frontend
RUN npm install -g npm serve
RUN npm install
# Default ENV values
# src/config/config.ts
ENV SERVICE_SCHEME='http'
ENV SERVICE_HOST='localhost'
ENV SERVICE_PORT='4000'
ENV NODE_SCHEME='http'
ENV NODE_HOST='localhost'
ENV NODE_PORT='8545'
ENV AQUARIUS_SCHEME='http'
ENV AQUARIUS_HOST='localhost'
ENV AQUARIUS_PORT='5000'
ENV BRIZO_SCHEME='http'
ENV BRIZO_HOST='localhost'
ENV BRIZO_PORT='8030'
ENV BRIZO_ADDRESS='0x00bd138abd70e2f00903268f3db08f2d25677c9e'
ENV PARITY_SCHEME='http'
ENV PARITY_HOST='localhost'
ENV PARITY_PORT='8545'
ENV SECRET_STORE_SCHEME='http'
ENV SECRET_STORE_HOST='localhost'
ENV SECRET_STORE_PORT='12001'
ENV FAUCET_SCHEME='http'
ENV FAUCET_HOST='localhost'
ENV FAUCET_PORT='3001'
ENV LISTEN_ADDRESS='0.0.0.0'
ENV LISTEN_PORT='3000'
ENTRYPOINT ["/app/frontend/scripts/docker-entrypoint.sh"]

View File

@ -0,0 +1,37 @@
#!/bin/sh
SERVICE_SCHEME=${SERVICE_SCHEME:-http}
SERVICE_HOST=${SERVICE_HOST:-localhost}
SERVICE_PORT=${SERVICE_PORT:-8545}
NODE_SCHEME=${NODE_SCHEME:-http}
NODE_HOST=${NODE_HOST:-localhost}
NODE_PORT=${NODE_PORT:-8545}
AQUARIUS_SCHEME=${AQUARIUS_SCHEME:-http}
AQUARIUS_HOST=${AQUARIUS_HOST:-localhost}
AQUARIUS_PORT=${AQUARIUS_PORT:-5000}
BRIZO_SCHEME=${BRIZO_SCHEME:-http}
BRIZO_HOST=${BRIZO_HOST:-localhost}
BRIZO_PORT=${BRIZO_PORT:-8030}
BRIZO_PASSWORD=${BRIZO_PASSWORD:-0x00bd138abd70e2f00903268f3db08f2d25677c9e}
PARITY_SCHEME=${PARITY_SCHEME:-http}
PARITY_HOST=${PARITY_HOST:-localhost}
PARITY_PORT=${PARITY_PORT:-8545}
SECRET_STORE_SCHEME=${SECRET_STORE_SCHEME:-http}
SECRET_STORE_HOST=${SECRET_STORE_HOST:-localhost}
SECRET_STORE_PORT=${SECRET_STORE_PORT:-12001}
FAUCET_SCHEME=${FAUCET_SCHEME:-http}
FAUCET_HOST=${FAUCET_HOST:-localhost}
FAUCET_PORT=${FAUCET_PORT:-443}
envsubst < /app/frontend/src/config/config.ts.template > /app/frontend/src/config/config.ts
if [ "${LOCAL_CONTRACTS}" = "true" ]; then
echo "Waiting for contracts to be generated..."
while [ ! -f "/app/frontend/node_modules/@oceanprotocol/keeper-contracts/artifacts/ready" ]; do
sleep 2
done
fi
echo "Starting Commons..."
npm run build
serve -l tcp://"${LISTEN_ADDRESS}":"${LISTEN_PORT}" -s /app/frontend/build/

View File

@ -18,7 +18,7 @@ import {
faucetHost,
faucetPort,
faucetScheme
} from './config'
} from './config/config'
declare global {
interface Window {

View File

@ -0,0 +1,36 @@
//
// commons-server connection
//
export const serviceScheme = '${SERVICE_SCHEME}'
export const serviceHost = '${SERVICE_HOST}'
export const servicePort = '${SERVICE_PORT}'
//
// OCEAN REMOTE CONNECTIONS
//
export const nodeScheme = '${NODE_SCHEME}'
export const nodeHost = '${NODE_HOST}'
export const nodePort = '${NODE_PORT}'
export const aquariusScheme = '${AQUARIUS_SCHEME}'
export const aquariusHost = '${AQUARIUS_HOST}'
export const aquariusPort = '${AQUARIUS_PORT}'
export const brizoScheme = '${BRIZO_SCHEME}'
export const brizoHost = '${BRIZO_HOST}'
export const brizoPort = '${BRIZO_ADDRESS}'
export const brizoAddress = '${BRIZO_ADDRESS}'
export const parityScheme = '${PARITY_SCHEME}'
export const parityHost = '${PARITY_HOST}'
export const parityPort = '${PARITY_PORT}'
export const secretStoreScheme = '${SECRET_STORE_SCHEME}'
export const secretStoreHost = '${SECRET_STORE_HOST}'
export const secretStorePort = '${SECRET_STORE_PORT}'
export const faucetScheme = '${FAUCET_SCHEME}'
export const faucetHost = '${FAUCET_HOST}'
export const faucetPort = '${FAUCET_PORT}'
export const verbose = true

View File

@ -18,7 +18,7 @@ import {
secretStorePort,
secretStoreScheme,
verbose
} from './config'
} from './config/config'
export async function provideOcean() {
const nodeUri = `${nodeScheme}://${nodeHost}:${nodePort}`

View File

@ -6,7 +6,7 @@ import ItemForm from './ItemForm'
import Item from './Item'
import styles from './index.module.scss'
import { serviceHost, servicePort, serviceScheme } from '../../../config'
import { serviceHost, servicePort, serviceScheme } from '../../../config/config'
interface File {
url: string

View File

@ -15,5 +15,5 @@
"noEmit": true,
"jsx": "preserve"
},
"include": ["src"]
"include": ["src", "config/config.ts"]
}

24
docker-compose.yml Normal file
View File

@ -0,0 +1,24 @@
version: '3.4'
services:
client:
build:
context: ./client
dockerfile: ./Dockerfile
ports:
- 3000:3000
depends_on:
- server
environment:
- SERVICE_SCHEME=http
- SERVICE_HOST=localhost
- SERVICE_PORT=4000
server:
build:
context: ./server
dockerfile: ./Dockerfile
ports:
- 4000:4000
command: npm run start

10
server/Dockerfile Normal file
View File

@ -0,0 +1,10 @@
FROM node:11-alpine
LABEL maintainer="Ocean Protocol <devops@oceanprotocol.com>"
WORKDIR /app/backend/
COPY . .
RUN npm install
RUN npm run build