Skip to content

Commit bd59a99

Browse files
author
Snehal Maid
committed
new docker build
1 parent 195ac9f commit bd59a99

21 files changed

+461
-0
lines changed

docker/v2/build_docker.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh
2+
###
3+
### Usage: sh ./build_docker.sh <dir1> <dir2>
4+
### This script will run the build.sh file for keymaker & any other directories specified in the args
5+
###
6+
echo ""
7+
echo "*** Cleaning build folder ***"
8+
echo ""
9+
find ./build -exec rm -rdf "{}" \;
10+
mkdir ./build
11+
### Build keymaker
12+
cd ./keymaker
13+
./build.sh
14+
cd ..

docker/v2/build_package.sh

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/bin/sh
2+
if [ -z "$KEYMAKER_VERSION" ]
3+
then
4+
echo "KEYMAKER_VERSION must be set first by running command:"
5+
echo " source ./getVersion.sh"
6+
exit 1
7+
else
8+
echo "KEYMAKER_VERSION is ${KEYMAKER_VERSION}, ok to proceed? (y/n)"
9+
read isVersionOk
10+
if [ "$isVersionOk" != "y" ]
11+
then
12+
echo "Stopping build, re-run when version is ok."
13+
exit 1
14+
else
15+
echo "Building with KEYMAKER_VERSION ${KEYMAKER_VERSION}"
16+
fi
17+
fi
18+
19+
### Cleaning build directory
20+
echo ""
21+
echo "*** Cleaning build directory ***"
22+
echo ""
23+
rm -r ./build/*
24+
### Packaging Docker images
25+
echo ""
26+
echo "*** Packaging docker images ***"
27+
echo ""
28+
docker save keymaker-ui:${KEYMAKER_VERSION} keymaker-admin-api:${KEYMAKER_VERSION} keymaker-engine-api:${KEYMAKER_VERSION} | gzip > keymakerDocker.tar.gz
29+
mv keymakerDocker.tar.gz ./build
30+
### Packaging Config
31+
echo ""
32+
echo "*** Packaging Keymaker config ***"
33+
echo ""
34+
35+
tar --exclude='movies*' -zcvf keymaker_config.tar.gz ./config
36+
mv ./keymaker_config.tar.gz ./build
37+
38+
39+
#cp docker-compose.yml ./build/docker-compose.yml
40+
sed 's|${KEYMAKER_VERSION}|'$KEYMAKER_VERSION'|g' docker-compose.yml > ./build/docker-compose.yml
41+
cp ./keymaker.sh ./build/keymaker.sh
42+
cp ../../admin-api/scripts/create-user.sh ./build
43+
echo ""
44+
echo "*** Packaging everything ***"
45+
echo ""
46+
cd ./build
47+
tar cvf keymaker.tar.gz *
48+
echo "*** Done ***"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
==== Keymaker 7.0.0 - Labs ==== ub6KcYH91hgO0v/NLrGzeD0/vl2iP76afPZmg97dwODgSR9XfqOEccwWOtVdgnzs8JmhkNV046Akg5zlmp6t6yM2JxxfDHhZO3D7uh2WSFA0GOJBoMznzx3iXAZETg3fJLK2WH6cAX/uLT0bFBTPvpRyc/hQMe4hK28nJh0608bcSudoe6wU0x92aZD0VHji/8D7Ol0FWmuLeVg8o+pmzYYODrLCE+36Pr49GhIdLzn+fhkSvYmbK2nVWlW4MVp4KLRP2ZM6h4YFKoEPyP3BmG5YakRLNGD6ZOMWdthucdTYWtAoXq/1S8fJ26wFBJvZlH0iX8jQIWRnlPo+tqdzkg==_$$_e3AEUk9sWOpvbb+5Ch6VprpZGv24V8SgfscmIKo8yicEOVqWVL5GZUmdi/zjKUfgjjdoS7ryFbKDPgMSSHP4Aw==
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
user nginx;
2+
worker_processes auto;
3+
4+
error_log /var/log/nginx/error.log warn;
5+
pid /var/run/nginx.pid;
6+
7+
8+
events {
9+
worker_connections 1024;
10+
}
11+
12+
13+
http {
14+
include /etc/nginx/mime.types;
15+
default_type application/octet-stream;
16+
17+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
18+
'$status $body_bytes_sent "$http_referer" '
19+
'"$http_user_agent" "$http_x_forwarded_for"';
20+
21+
access_log /var/log/nginx/access.log main;
22+
23+
sendfile on;
24+
#tcp_nopush on;
25+
26+
keepalive_timeout 65;
27+
28+
#gzip on;
29+
30+
server {
31+
listen 3080;
32+
listen 3443 ssl;
33+
server_name localhost;
34+
ssl_certificate neo4j.com.crt;
35+
ssl_certificate_key neo4j.com.key;
36+
37+
#charset koi8-r;
38+
#access_log /var/log/nginx/host.access.log main;
39+
40+
location / {
41+
root /usr/share/nginx/html;
42+
index index.html index.htm;
43+
try_files $uri /index.html;
44+
}
45+
46+
#error_page 404 /404.html;
47+
48+
# redirect server error pages to the static page /50x.html
49+
#
50+
error_page 500 502 503 504 /50x.html;
51+
location = /50x.html {
52+
root /usr/share/nginx/html;
53+
}
54+
}
55+
}
56+
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
window._dynamicEnv_ = {
2+
REACT_APP_GRAPHQL_URI: "http://localhost:36402/graphql",
3+
REACT_APP_RECOMMENDATION_URI: "http://localhost:36401/graphql",
4+
REACT_APP_EULA_GRAPHQL_URI: "ignore",
5+
REACT_APP_AUTH_DOMAIN: "none",
6+
REACT_APP_AUTH_CLIENT_ID: "none",
7+
REACT_APP_AUTH_CALLBACK: "none",
8+
REACT_APP_AUTH_METHOD: "local",
9+
REACT_APP_AUTH_LOGOUT_URL: "localhost",
10+
REACT_APP_EXPIRE_TIME: "3600",
11+
REACT_APP_HIVE_URI: "",
12+
REACT_APP_HIVE_UI: "",
13+
REACT_APP_SOLUTION: "",
14+
};

docker/v2/config/whitelist/whitelisted-origins.txt

Whitespace-only changes.

docker/v2/docker-compose.yml

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
version: "1"
2+
3+
services:
4+
keymaker-admin-api:
5+
image: keymaker-admin-api:${KEYMAKER_VERSION}
6+
ports:
7+
- "36402:4002"
8+
volumes:
9+
- ./config/keymaker-license:/app/license
10+
- ./config/keymaker-certificate:/app/ssh_keys
11+
- ./config/logs:/app/logs
12+
environment:
13+
- LICENSE_FILE=/app/license/license.lic
14+
- NEO4J_URI=neo4j://localhost:7687
15+
- NEO4J_USER=neo4j
16+
- NEO4J_PASSWORD=neo4j
17+
- NEO4J_DATABASE=neo4j
18+
- GRAPHQL_LISTEN_PORT=4002
19+
- ENCRYPTION_KEY=keymakerEncryptionKey
20+
- ENGINE_API_APIKEY=LZmIbId7He4dh0hH7ZUVKz5A
21+
- AUTH_METHOD=local
22+
- HOST_NAME=localhost
23+
- HOST_PROTOCOL=http
24+
- LOGS_DIR=/app/logs
25+
- LOG_LEVEL=info
26+
- LOG_MAX_SIZE=20m
27+
- LOG_RETENTION_PERIOD=14d
28+
- MAX_CACHED_DRIVERS=100
29+
- MAX_DRIVER_AGE=3600000
30+
- NEO4J_TRANSACTION_TIMEOUT=300000
31+
- DRIVER_CACHE_PRUNE_INTERVAL=600000
32+
keymaker-engine-api:
33+
image: keymaker-engine-api:${KEYMAKER_VERSION}
34+
ports:
35+
- "36401:4001"
36+
volumes:
37+
- ./config/keymaker-license:/app/license
38+
- ./config/keymaker-certificate:/app/ssh_keys
39+
- ./config/whitelist:/app/config
40+
- ./config/logs:/app/logs
41+
environment:
42+
- LICENSE_FILE=/app/license/license.lic
43+
- WHITELISTED_ORIGINS_FILE=/app/config/whitelisted-origins.txt
44+
- NEO4J_URI=neo4j://localhost:7687
45+
- NEO4J_USERNAME=neo4j
46+
- NEO4J_PASSWORD=neo4j
47+
- NEO4J_DATABASE=neo4j
48+
- GRAPHQL_LISTEN_PORT=4001
49+
- ENCRYPTION_KEY=keymakerEncryptionKey
50+
- HOST_NAME=localhost
51+
- HOST_PROTOCOL=http
52+
- MAX_CACHED_DRIVERS=100
53+
- MAX_DRIVER_AGE=3600000
54+
- NEO4J_TRANSACTION_TIMEOUT=300000
55+
- DRIVER_CACHE_PRUNE_INTERVAL=600000
56+
- MAX_CACHED_APIKEYS=100
57+
- APIKEY_CACHE_PRUNE_INTERVAL=600000
58+
- LOGS_DIR=/app/logs
59+
- LOG_LEVEL=info
60+
- LOG_MAX_SIZE=20m
61+
- LOG_RETENTION_PERIOD=14d
62+
- MAX_CACHED_ENGINES=100
63+
- MAX_ENGINE_AGE=3600000
64+
- ENGINE_CACHE_PRUNE_INTERVAL=600000
65+
- ENGINE_CACHE_RESET_INTERVAL=86400000
66+
keymaker-ui:
67+
image: keymaker-ui:${KEYMAKER_VERSION}
68+
ports:
69+
- "36081:3080"
70+
- "36444:3443"
71+
volumes:
72+
- ./config/keymaker-ui:/usr/share/nginx/html/config
73+
- ./config/keymaker-ui-nginx:/usr/share/nginx/conf
74+
depends_on:
75+
- "keymaker-engine-api"
76+
- "keymaker-admin-api"

docker/v2/getVersion.sh

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
3+
# Get the directory of the current script
4+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
6+
# Path to the version.js file
7+
input="$SCRIPT_DIR/../../ui/src/version.js"
8+
9+
# Check if the input file exists
10+
if [[ ! -f "$input" ]]; then
11+
echo "Error: File $input not found."
12+
return 1 # Use 'return' instead of 'exit' when sourcing
13+
fi
14+
15+
# Extract the version number using sed
16+
VERSION=$(sed -n "s/export const VERSION = '\([^']*\)';/\1/p" "$input")
17+
18+
# Replace '-' and '+' with '_'
19+
VERSION=${VERSION//-/_}
20+
VERSION=${VERSION//+/_}
21+
22+
# Output the version and export it as an environment variable
23+
echo "VERSION: $VERSION"
24+
export KEYMAKER_VERSION=$VERSION

docker/v2/keymaker.sh

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/sh
2+
doExit () {
3+
echo >&2 "$@"
4+
exit 1
5+
}
6+
7+
[ "$#" -eq 1 ] || doExit "Usage: keymaker (start | stop | status | unpack)"
8+
if [ "$1" = "start" ]
9+
then
10+
echo "Starting Keymaker services"
11+
docker-compose --project-name keymaker up --detach --remove-orphans --force-recreate
12+
echo "Keymaker should be available in a few minutes"
13+
echo " Keymaker Admin UI: http://localhost:36081"
14+
elif [ "$1" = "stop" ]
15+
then
16+
echo "Stopping Keymaker services"
17+
docker-compose --project-name keymaker stop
18+
elif [ "$1" = "status" ]
19+
then
20+
echo "Keymaker status"
21+
docker ps | grep keymaker
22+
elif [ "$1" = "unpack" ]
23+
then
24+
if [ -d "./keymaker_config" ]
25+
then
26+
echo "*** Config folder exists. Skipping unpacking of config ***"
27+
else
28+
echo ""
29+
echo "*** Unpacking config ***"
30+
echo ""
31+
tar xvfz keymaker_config.tar.gz
32+
fi
33+
echo ""
34+
echo "*** Unpacking docker images ***"
35+
echo ""
36+
docker load < keymakerDocker.tar.gz
37+
echo ""
38+
fi

docker/v2/keymaker/.DS_Store

6 KB
Binary file not shown.

docker/v2/keymaker/admin-api/build.sh

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/sh
2+
3+
# Clean dir before build
4+
echo ">>> Removing ./admin-api folder"
5+
./cleanup.sh $1
6+
# Copy in source code
7+
echo ">>> Copying ./admin-api folder without node_modules"
8+
rsync -av --progress ../../../../admin-api . --exclude node_modules
9+
cd admin-api
10+
11+
# Install deps
12+
echo ">>> Installing dependencies"
13+
if [ "$1" = "-skipNpmInstall" ]
14+
then
15+
echo ">>> Skipping npm install"
16+
mv ../keep/node_modules .
17+
else
18+
echo ">>> Doing npm install"
19+
npm install
20+
fi
21+
# Copy in empty .env files (vars are specified in docker-compose.yml)
22+
cp ../.env ./.env
23+
cp ../.env ./dist/.env
24+
# Build docker image
25+
echo ">>> Doing docker build"
26+
docker build --no-cache -f Dockerfile ./ -t keymaker-admin-api:${KEYMAKER_VERSION}
27+
# Remove source code
28+
echo ">>> Removing ./admin-api folder"
29+
cd ..
30+
./cleanup.sh $1
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh
2+
if [ "$1" = "-skipNpmInstall" ]
3+
then
4+
mkdir ./keep
5+
mv ./admin-api/node_modules ./keep
6+
find ./admin-api -exec rm -rdf "{}" \;
7+
else
8+
find ./admin-api -exec rm -rdf "{}" \;
9+
fi

docker/v2/keymaker/admin-api/package-lock.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docker/v2/keymaker/build.sh

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/sh
2+
if [ -z "$KEYMAKER_VERSION" ]
3+
then
4+
echo "KEYMAKER_VERSION must be set first by running command:"
5+
echo " source ./getVersion.sh"
6+
exit 1
7+
else
8+
echo "KEYMAKER_VERSION is ${KEYMAKER_VERSION}, ok to proceed? (y/n)"
9+
read isVersionOk
10+
if [ "$isVersionOk" != "y" ]
11+
then
12+
echo "Stopping build, re-run when version is ok."
13+
exit 1
14+
else
15+
echo "Building with KEYMAKER_VERSION ${KEYMAKER_VERSION}"
16+
fi
17+
fi
18+
19+
echo ""
20+
echo "*** Building Keymaker ***"
21+
echo ""
22+
### Build Keymaker Admin API
23+
echo ""
24+
echo "*** Building Keymaker Admin API ***"
25+
echo ""
26+
cd ./admin-api
27+
./build.sh $1
28+
cd ..
29+
### Build Keymaker Engine API
30+
echo ""
31+
echo "*** Building Keymaker Engine API ***"
32+
echo ""
33+
cd ./engine-api
34+
./build.sh $1
35+
cd ..
36+
### Build Keymaker UI
37+
echo ""
38+
echo "*** Building Keymaker UI ***"
39+
echo ""
40+
cd ./ui
41+
./build.sh $1
42+
cd ..

0 commit comments

Comments
 (0)