forked from Botanical/BotanJS
Added settings for k8s
This commit is contained in:
parent
c6c7d5dddc
commit
39ade9abe9
12
.dockerignore
Normal file
12
.dockerignore
Normal file
@ -0,0 +1,12 @@
|
||||
.dockerignore
|
||||
.git
|
||||
.gitignore
|
||||
*~
|
||||
*.swp
|
||||
*.pyc
|
||||
Dockerfile
|
||||
k8s.yaml
|
||||
__pycache__
|
||||
cache/*
|
||||
logs/*
|
||||
env/*
|
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@ -0,0 +1,22 @@
|
||||
FROM python:latest
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y openjdk-11-jre
|
||||
|
||||
RUN mkdir -p /opt/utils
|
||||
RUN wget -O /opt/utils/closure.jar "https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/v20200830/closure-compiler-v20200830.jar"
|
||||
RUN wget -O /opt/utils/yuicompressor.jar "https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar"
|
||||
|
||||
RUN pip install virtualenv
|
||||
RUN chown www-data:www-data . -R
|
||||
|
||||
USER www-data
|
||||
|
||||
RUN virtualenv env
|
||||
RUN env/bin/pip install Flask redis compressinja Celery uwsgi
|
||||
|
||||
EXPOSE 5000
|
||||
ENTRYPOINT ["setup/docker.start"]
|
||||
|
||||
COPY . /app/
|
@ -8,7 +8,7 @@ from botanjs.config import Config as config
|
||||
SiteRoot = os.path.abspath( "." )
|
||||
|
||||
# Setting the SiteRoot for config
|
||||
config["Paths"]["SiteRoot"] = SiteRoot;
|
||||
config["Paths"]["SiteRoot"] = SiteRoot
|
||||
|
||||
bmap = os.path.join( config["Paths"]["Cache"], "botanjs", "bmap.xml" )
|
||||
|
||||
|
68
k8s.yaml
Normal file
68
k8s.yaml
Normal file
@ -0,0 +1,68 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: astrojs
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: astrojs
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: astrojs
|
||||
spec:
|
||||
volumes:
|
||||
- name: astrojs-cache
|
||||
nfs:
|
||||
server: astrofile.astrohost
|
||||
path: /srv/astrostorage
|
||||
containers:
|
||||
- name: web
|
||||
image: 192.168.80.4:32000/sites/astrojs:b00017
|
||||
volumeMounts:
|
||||
- mountPath: "/app/cache"
|
||||
name: astrojs-cache
|
||||
env:
|
||||
- name: FLASK_DEBUG
|
||||
value: "0"
|
||||
- name: FLASK_ENV
|
||||
value: "production"
|
||||
- name: RUN_MODE
|
||||
value: "web"
|
||||
- name: compiler
|
||||
image: 192.168.80.4:32000/sites/astrojs:b00017
|
||||
volumeMounts:
|
||||
- mountPath: "/app/cache"
|
||||
name: astrojs-cache
|
||||
env:
|
||||
- name: RUN_MODE
|
||||
value: "tasks"
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: astrojs
|
||||
spec:
|
||||
selector:
|
||||
app: astrojs
|
||||
ports:
|
||||
- port: 5000
|
||||
targetPort: 5000
|
||||
|
||||
---
|
||||
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: name-virtual-host-ingress
|
||||
spec:
|
||||
rules:
|
||||
- host: botanjs.botanical.astropenguin.net
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: astrojs
|
||||
servicePort: 5000
|
3
main.py
3
main.py
@ -19,4 +19,5 @@ service = WebAPI(
|
||||
application = service.app
|
||||
|
||||
if __name__ == "__main__":
|
||||
service.run( debug = DEBUG )
|
||||
application.config["DEBUG"] = DEBUG
|
||||
application.run( host = config["Service"]["BindAddress"], port = config["Service"]["Port"] )
|
||||
|
@ -12,9 +12,8 @@ Cache = ${SiteRoot}/cache
|
||||
|
||||
[BotanJS]
|
||||
SrcDir = ${Paths:Runtime}/botanjs/src
|
||||
REDIS_PASS = RJszCzFoeZaULKyY3w5W0kMVF4Ei5ZsqMVexk8wxFzQEYnRuLsdGOkHIAXYe4XNuByZHfbee7GxLsuo9xvEIKdYVpvVRYMUbcf25cuOIWV1sLgxhRv0q9KtH7cLpBroa1BIiqHtbzkd3erenel6siIqyHQxV0jPVFfm0ayCvYmdHiVL1VphBpTSnAX8JNvR2Iim5Q7aGiDpLxQD0nnnc1uQuJjwBNA3jkjddMMvHgN8iYleq4SA2xycqNNFzejlT
|
||||
|
||||
CeleryBroker = redis://:${REDIS_PASS}@192.168.80.100:6379/9
|
||||
CeleryBroker = redis://:@astrop-redis.default:6379/9
|
||||
|
||||
ClosureCompiler = /opt/utils/closure.jar
|
||||
YuiCompressor = /opt/utils/yuicompressor.jar
|
||||
|
32
setup/docker.start
Normal file
32
setup/docker.start
Normal file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
INST_DIR=$( dirname "${BASH_SOURCE[0]}" )
|
||||
source "$INST_DIR/config"
|
||||
cd $PROJ_ROOT
|
||||
|
||||
mkdir -p cache/botanjs
|
||||
|
||||
case "$RUN_MODE" in
|
||||
"web")
|
||||
./botan-rebuild.py
|
||||
./env/bin/uwsgi \
|
||||
--http-socket :5000 \
|
||||
--wsgi-file main.py \
|
||||
--callable application --master \
|
||||
--processes 1 --threads 2
|
||||
;;
|
||||
"tasks")
|
||||
source "$INST_DIR/celery.conf"
|
||||
|
||||
"$BIN_ROOT/celery" worker -n worker1@%h \
|
||||
-A ${CELERY_APP} \
|
||||
--loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS} \
|
||||
& "$BIN_ROOT/celery" worker -n worker1@%h \
|
||||
-A ${CELERY_APP} \
|
||||
--loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}
|
||||
;;
|
||||
*)
|
||||
echo "RUN_MODE is missing"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user