sudo pacman -S docker docker-compose docker-machine
this will clone this repos (main docker environement) and necessary other source code (synopsx, webapp, xml-tei sources, vuejs client)
git clone --recursive https://figureslibres.io/gogs/bachir/docker-gdp.git
sudo systemctl start docker
only before the first run (may take some time)
sudo docker-compose build
or with args for groups and users
docker-compose build --no-cache --build-arg UID=$(id -u) --build-arg GID=$(id -g) --build-arg UNAME=$(id -un) --build-arg GNAME=$(id -gn) [client | basex]
then each time you want to launch the app
sudo docker-compose up -d
the api is ready, you can go to http://localhost:8984/home
before you can use the client you need to trigger this url http://localhost:8984/indexing
open http://localhost:8988 in your browser
Cross origin poilicy will block the api requests from client
You'll need to install vhost domain for api and client, like dev.gdp.net and dev.api.gdp.net
Or in firefox install this addon to allow cors addons.mozilla.org/en-US/firefox/addon/cors-everywhere/
to follow the webpack compilation process, run
sudo docker-compose logs -f
update the code
git pull origin master
git pull --recurse-submodules
restart the containers
docker-compose restart basex
docker-compose restart client
or rebuild if data was updated
docker-compose up -d --build
or
docker-compose build --no-cache [client | basex]
docker-compose up -d [client | basex]
run containers for prod
docker-compose -f docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
client will be built the client container stop
basex container will stay up
you have to serve client/dist/index.html with your own webserver (e.g. nginx, apache, etc)
server {
listen 80;
server_name domain.tld;
root /path/to/docker-gdp/client/dist/;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
charset utf-8;
location ~/api(.*)$ {
proxy_pass http://127.0.0.1:8984$1$is_args$args;
#proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_redirect off;
add_header Access-Control-Allow-Origin *;
}
}
https://github.com/guidesDeParis/webapp/blob/master/install.md