Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • prodige/pr_prodige
1 result
Show changes
Commits on Source (59)
Showing
with 373 additions and 271 deletions
......@@ -197,11 +197,13 @@ function initConfig {
chown -R ${OWNERSHIP} ${DOCKERDIR}/data/contribution-back/conf
logOkStep " Database"
chmod ${DIR_OTHER_R} ${DOCKERDIR}/data/database
if ${DEV}
then
chown -R ${OWNERSHIP} ${DOCKERDIR}/data/database
fi
chmod o+r ${DOCKERDIR}/data/database/postgresql.conf
chmod o+r ${DOCKERDIR}/data/database/db.env
logOkStep " Datacarto"
find ${DOCKERDIR}/data/datacarto/conf -type d -exec chmod ${DIR_R} {} \;
......@@ -214,11 +216,14 @@ function initConfig {
chown -R ${OWNERSHIP} ${DOCKERDIR}/data/dataviz/conf
logOkStep " Geonetwork"
chmod ${DIR_OTHER_R} ${DOCKERDIR}/data/geonetwork
find ${DOCKERDIR}/data/geonetwork/conf -type d -exec chmod ${DIR_R} {} \;
find ${DOCKERDIR}/data/geonetwork/conf -type f -exec chmod ${FILE_R} {} \;
find ${DOCKERDIR}/data/geonetwork/WEB-INF -type d -exec chmod ${DIR_R} {} \;
find ${DOCKERDIR}/data/geonetwork/WEB-INF -type f -exec chmod ${FILE_R} {} \;
chmod ${FILE_RW} ${DOCKERDIR}/data/geonetwork/WEB-INF/encryptor.properties
chmod ${DIR_OTHER_R} ${DOCKERDIR}/data/geonetwork/conf
chmod ${FILE_OTHER_R} ${DOCKERDIR}/data/geonetwork/conf/config.env
chown -R ${OWNERSHIP} ${DOCKERDIR}/data/geonetwork/conf
chown -R ${OWNERSHIP} ${DOCKERDIR}/data/geonetwork/WEB-INF
......@@ -333,7 +338,8 @@ function initData {
fi
logOkStep " Datahub"
chown -R ${OWNERSHIP_NGINX} ${DOCKERDIR}/data/datahub/datahub.env
chmod ${DIR_OTHER_R} ${DOCKERDIR}/data/datahub
chmod ${FILE_OTHER_R} ${DOCKERDIR}/data/datahub/datahub.env
mkdir -p ${DOCKERDIR}/data/datahub/assets
find ${DOCKERDIR}/data/datahub/assets -type d -exec chmod ${DIR_RW} {} \;
find ${DOCKERDIR}/data/datahub/assets -type f -exec chmod ${FILE_RW} {} \;
......@@ -346,6 +352,7 @@ function initData {
find ${DOCKERDIR}/data/datahub/scripts -type d -exec chmod ${DIR_RW} {} \;
find ${DOCKERDIR}/data/datahub/scripts -type f -exec chmod ${FILE_RW} {} \;
chown -R ${OWNERSHIP_NGINX} ${DOCKERDIR}/data/datahub/scripts
chmod +x ${DOCKERDIR}/data/datahub/scripts/custom_index.sh
logOkStep "Init ./data/geonetwork with ./init/data/geonetwork"
......
......@@ -374,9 +374,9 @@ function validation {
echo " old mapserv : ${OLDMAPSERV}${OLDDOMAIN}"
echo " old print : ${OLDPRINT}${OLDDOMAIN}"
echo " old table : ${OLDTABLE}${OLDDOMAIN}"
echo " old telechargement : ${OLDTELECHARGEMENT}${DOMAIN}"
echo " old traitement : ${OLDTRAITEMENT}${DOMAIN}"
echo " old vues : ${OLDVUES}${DOMAIN}"
echo " old telechargement : ${OLDTELECHARGEMENT}${OLDDOMAIN}"
echo " old traitement : ${OLDTRAITEMENT}${OLDDOMAIN}"
echo " old vues : ${OLDVUES}${OLDDOMAIN}"
if ! ${YES}
then
logOkStep "Are these variables valid? (y/n)"
......
......@@ -389,69 +389,39 @@ function validation {
}
function get_db_parameters {
logOkStep "Get parameters from configuration files"
PARAM_FILE="${DOCKERDIR}/data/conf/global.env.local"
user_bdd=$(eval echo $(awk -F'=' '/CATALOGUE_USER/ { print $2 }' ${PARAM_FILE}))
pass_bdd=$(eval echo $(awk -F'=' '/CATALOGUE_PASSWORD/ { print $2 }' ${PARAM_FILE}))
CATALOGUE_DB=$(eval echo $(awk -F'=' '/CATALOGUE_NAME/ { print $2 }' ${PARAM_FILE}))
PRODIGE_DB=$(eval echo $(awk -F'=' '/PRODIGE_NAME/ { print $2 }' ${PARAM_FILE}))
host_bdd=$(eval echo $(awk -F'=' '/PRODIGE_HOST/ { print $2 }' ${PARAM_FILE}))
echo "user_bdd=$user_bdd"
echo "CATALOGUE_DB=$CATALOGUE_DB"
echo "PRODIGE_DB=$PRODIGE_DB"
echo "host_bdd=$host_bdd"
}
function set_db {
logOkStep "(${CATALOGUE_DB}) Setting system/server/host in public.settings"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='system/server/host'"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "update public.settings set value='${CATALOGUE}${DOMAIN}' where name='system/server/host';"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='system/server/host'"
logOkStep "(${CATALOGUE_DB}) Setting metadata/resourceIdentifierPrefix in public.settings"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='metadata/resourceIdentifierPrefix'"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "update public.settings set value='https://${CATALOGUE}${DOMAIN}/geonetwork/srv/' where name='metadata/resourceIdentifierPrefix';"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select value from public.settings where name='metadata/resourceIdentifierPrefix'"
logOkStep "(${PRODIGE_DB}) Setting account_hostpostgres, account_passwordpostgres, account_userpostgres, account_dbpostgres in carmen.account"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select account_hostpostgres, account_passwordpostgres, account_userpostgres, account_dbpostgres from carmen.account"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.account set account_hostpostgres = '${host_bdd}', account_passwordpostgres = '${pass_bdd}', account_userpostgres = '${user_bdd}' where account_dbpostgres = '${PRODIGE_DB}';"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select account_hostpostgres, account_passwordpostgres, account_userpostgres, account_dbpostgres from carmen.account"
TRAILINGDOMAIN=${DOMAIN:1:${#DOMAIN}}
logOkStep "(${PRODIGE_DB}) Setting dns_url in carmen.lex_dns"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select dns_url from carmen.lex_dns"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.lex_dns set dns_url = '${TRAILINGDOMAIN}';"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select dns_url from carmen.lex_dns"
}
function change_db {
OLD=(${OLDADMINCARTO} ${OLDADMIN} ${OLDCARTO} ${OLDCAS} ${OLDCATALOGUE} ${OLDCONTRIBUTION} ${OLDDATACARTO} ${OLDDATAVIZ} ${OLDMAPSERV} ${OLDPRINT} ${OLDTABLE} ${OLDTELECHARGEMENT} ${OLDTRAITEMENT} ${OLDVUES})
NEW=(${ADMINCARTO} ${ADMIN} ${CARTO} ${CAS} ${CATALOGUE} ${CONTRIBUTION} ${DATACARTO} ${DATAVIZ} ${MAPSERV} ${PRINT} ${TABLE} ${TELECHARGEMENT} ${TRAITEMENT} ${VUES})
# Before
# docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select data from public.metadata"
logOkStep "(${PRODIGE_DB} before) layer_metadata_file from carmen.layer"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select layer_metadata_file from carmen.layer"
logOkStep "(${PRODIGE_DB} before) wxs_url from carmen.wxs"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select wxs_url from carmen.wxs"
for i in ${!OLD[@]}; do
logOkStep "(${CATALOGUE_DB}) Replacing ${OLD[i]}$OLDDOMAIN by ${NEW[i]}$DOMAIN in public.metadata"
# docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select data from public.metadata"
docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "update public.metadata set data = replace(data, '${OLD[i]}$OLDDOMAIN', '${NEW[i]}$DOMAIN');"
logOkStep "(${PRODIGE_DB}) Replacing ${OLD[i]}$OLDDOMAIN by ${NEW[i]}$DOMAIN in layer_metadata_file from carmen.layer"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.layer set layer_metadata_file = replace(layer_metadata_file, '${OLD[i]}$OLDDOMAIN', '${NEW[i]}$DOMAIN');"
logOkStep "(${PRODIGE_DB}) Replacing ${OLD[i]}$OLDDOMAIN by ${NEW[i]}$DOMAIN in wxs_url from carmen.wxs"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "update carmen.wxs set wxs_url = replace(wxs_url, '${OLD[i]}$OLDDOMAIN', '${NEW[i]}$DOMAIN');"
done
# After
# docker exec -u postgres prodige_database psql -d ${CATALOGUE_DB} -c "select data from public.metadata"
logOkStep "(${PRODIGE_DB} after) layer_metadata_file from carmen.layer"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select layer_metadata_file from carmen.layer"
logOkStep "(${PRODIGE_DB} after) wxs_url from carmen.wxs"
docker exec -u postgres prodige_database psql -d ${PRODIGE_DB} -c "select wxs_url from carmen.wxs"
function run_command_admin {
docker exec -u www-data -w /var/www/html/site ppr_prodige_admin_web php bin/console admin:move_url_db \
--domain=$DOMAIN\
--admin=$ADMIN\
--admincarto=$ADMINCARTO\
--carto=$CARTO\
--cas=$CAS\
--catalogue=$CATALOGUE\
--contribution=$CONTRIBUTION\
--datacarto=$DATACARTO\
--dataviz=$DATAVIZ\
--mapserv=$MAPSERV\
--print=$PRINT\
--table=$TABLE\
--traitement=$TRAITEMENT\
--telechargement=$TELECHARGEMENT\
--vues=$VUES\
--olddomain=$OLDDOMAIN\
--oldadmin=$OLDADMIN\
--oldadmincarto=$OLDADMINCARTO\
--oldcarto=$OLDCARTO\
--oldcas=$OLDCAS\
--oldcatalogue=$OLDCATALOGUE\
--oldcontribution=$OLDCONTRIBUTION\
--olddatacarto=$OLDDATACARTO\
--olddataviz=$OLDDATAVIZ\
--oldmapserv=$OLDMAPSERV\
--oldprint=$OLDPRINT\
--oldtable=$OLDTABLE\
--oldtraitement=$OLDTRAITEMENT\
--oldtelechargement=$OLDTELECHARGEMENT\
--oldvues=$OLDVUES
ifCmdFailStep "ppr_prodige_admin container is not running. Please start appropriate docker-compose."
}
########################################################################################################################################
......@@ -606,8 +576,7 @@ if [[ $(id -u) -ne 0 ]] ; then
fi
# Step
NB_STEP_AL=4
NB_STEP_AL=3
STEP_AL=1
MODE="Validation"
......@@ -615,19 +584,9 @@ logOkStep "Validation of variables"
validation
STEP_AL=2
MODE="GetDatabaseParameters"
logOkStep "Get database parameters"
get_db_parameters
STEP_AL=3
MODE="SetDatabaseValues"
logOkStep "Set database values"
set_db
STEP_AL=4
MODE="ReplaceDatabaseValues"
logOkStep "Replace database values"
change_db
MODE="RunCommand"
logOkStep "Run command from Admin service"
run_command_admin
logOk "End of ${SCRIPTNAME}"
# End
......@@ -252,6 +252,37 @@ function validation {
}
function set_nginx {
sed -i "s/server_name.*$/server_name ${ADMIN}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/admin.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${ADMIN}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/admin.conf
sed -i "s/server_name.*$/server_name ${ADMINCARTO}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/admincarto.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${ADMINCARTO}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/admincarto.conf
sed -i "s/server_name.*$/server_name ${CARTO}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/carto.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${CARTO}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/carto.conf
sed -i "s/server_name.*$/server_name ${CAS}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/cas.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${CAS}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/cas.conf
sed -i "s/server_name.*$/server_name ${CATALOGUE}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/catalogue.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${CATALOGUE}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/catalogue.conf
sed -i "s/server_name.*$/server_name ${CONTRIBUTION}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/contribution.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${CONTRIBUTION}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/contribution.conf
sed -i "s/server_name.*$/server_name ${DATACARTO}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/datacarto.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${DATACARTO}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/datacarto.conf
sed -i "s/server_name.*$/server_name ${DATAVIZ}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/dataviz.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${DATAVIZ}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/dataviz.conf
sed -i "s/server_name.*$/server_name ${MAPSERV}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/mapserv.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${MAPSERV}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/mapserv.conf
sed -i "s/server_name.*$/server_name ${PRINT}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/print.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${PRINT}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/print.conf
sed -i "s/server_name.*$/server_name ${TABLE}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/table.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${TABLE}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/table.conf
sed -i "s/server_name.*$/server_name ${TELECHARGEMENT}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/telechargement.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${TELECHARGEMENT}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/telechargement.conf
sed -i "s/server_name.*$/server_name ${TRAITEMENT}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/traitement.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${TRAITEMENT}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/traitement.conf
sed -i "s/server_name.*$/server_name ${VUES}${DOMAIN};/" ${DOCKERDIR}/data/proxy/conf/vues.conf
sed -i "s#rewrite \^ https://.*#rewrite ^ https://${VUES}${DOMAIN}\$request_uri? permanent;#" data/proxy/conf/vues.conf
}
function set_global {
sed -i "s|^PRODIGE_URL_ADMIN=.*$|PRODIGE_URL_ADMIN=\"https://${ADMIN}${DOMAIN}\"|" ${DOCKERDIR}/data/conf/global.env.local
sed -i "s|^PRODIGE_URL_ADMINCARTO=.*$|PRODIGE_URL_ADMINCARTO=\"https://${ADMINCARTO}${DOMAIN}\"|" ${DOCKERDIR}/data/conf/global.env.local
......@@ -267,7 +298,7 @@ function set_global {
sed -i "s|^PRODIGE_URL_TRAITEMENT=.*$|PRODIGE_URL_TRAITEMENT=\"https://${TRAITEMENT}${DOMAIN}\"|" ${DOCKERDIR}/data/conf/global.env.local
sed -i "s|^PRODIGE_URL_VUES=.*$|PRODIGE_URL_VUES=\"https://${VUES}${DOMAIN}\"|" ${DOCKERDIR}/data/conf/global.env.local
sed -i "s|^CAS_HOST=.*$|CAS_HOST=\"${CAS}${DOMAIN}\"|" ${DOCKERDIR}/data/conf/global.env.local
sed -i "s|^CORS_ALLOW_ORIGIN=.*$|CORS_ALLOW_ORIGIN='^https?://([a-z]+${DOMAIN}\|localhost)?$'|" ${DOCKERDIR}/data/*/conf/env.prod
sed -i "s|^CORS_ALLOW_ORIGIN=.*$|CORS_ALLOW_ORIGIN='^https?://([a-z]+${DOMAIN}\|localhost)?(:[0-9]+)?$'|" ${DOCKERDIR}/data/*/conf/env.prod
}
function set_admincarto {
......@@ -410,6 +441,7 @@ function set_vues {
}
function set_parameters {
set_nginx
set_global
set_admincarto
set_cas
......
......@@ -111,7 +111,7 @@ function validation {
function import_data_admin {
logOkStep "Starting import in docker ppr_prodige_admin_web"
docker exec -u www-data -w /var/www/html/site ppr_prodige_admin_web php bin/console d:m:mi --no-interaction --configuration migrations/freshInstall/doctrine_migrations.yaml
docker exec -u www-data -w /var/www/html/site ppr_prodige_admin_web php bin/console admin:fresh-install
ifCmdFailStep "jpr_prodige_geonetwork_web container is not running. Please start appropriate docker-compose."
}
......@@ -119,7 +119,9 @@ function refresh_geonetwork {
logOkStep "Clean cache in docker jpr_prodige_geonetwork_web"
PHPCLI_DEFAULT_PASSWORD=$(sed -n 's/^.*PHPCLI_DEFAULT_PASSWORD=\(.*\)$/\1/p' ${DOCKERDIR}/data/conf/global.env.local)
curl -sk -X PUT -u admincli:${PHPCLI_DEFAULT_PASSWORD} -H "Accept: application/json" "https://catalogue"${DOMAIN}"/geonetwork/srv/api/site/index?reset=false&asynchronous=true" --output /dev/null
docker exec -u www-data -w /var/www/html/site -t ppr_prodige_admin_web php bin/console admin:phpcli_update_password ${PHPCLI_DEFAULT_PASSWORD}
sleep 1
curl -sk -X PUT -u admincli:${PHPCLI_DEFAULT_PASSWORD} -H "Accept: application/json" "https://catalogue"${DOMAIN}"/geonetwork/srv/api/site/index?reset=false&asynchronous=true"
ifCmdFailStep "ReIndex Geonetwork on error. Check Geonetwork configuration"
curl -k -X GET "https://catalogue"${DOMAIN}"/geonetwork/static/wroAPI/reloadModel"
......
......@@ -237,6 +237,7 @@ function validation {
echo "smtp_myhostname : ${SMTP_MYHOSTNAME}"
echo "smtp_mydomain : ${SMTP_MYDOMAIN}"
echo "debug_mail : ${DEBUG_MAIL}"
echo "cli_password : ${PHPCLI_DEFAULT_PASSWORD}"
echo "timezone : ${TIMEZONE}"
echo "double_auth : ${DOUBLEAUTH}"
echo "proconnect : ${PROCONNECT}"
......@@ -396,7 +397,7 @@ function set_salt_geonetwork {
logOkStep "set_salt in data/admin/conf/env.prod"
sed -i "s/GEONETWORK_SALT=\$/GEONETWORK_SALT=${GEONETWORK_SALT}/" ${DOCKERDIR}/data/admin/conf/env.prod
logOkStep "set_salt in data/geonetwork/conf/config.env"
sed -i "s/passwordSalt=\$/passwordSalt=${GEONETWORK_SALT}/" ${DOCKERDIR}/data/geonetwork/conf/config.env
sed -i "s/passwordSalt=secret-hash-salt=\$/passwordSalt=${GEONETWORK_SALT}/" ${DOCKERDIR}/data/geonetwork/conf/config.env
}
function set_cas_proconnect {
......
......@@ -2,8 +2,8 @@ version: '3.5'
services:
jpr_prodige_cas_web:
environment:
- JAVA_OPTS="-Djavax.net.ssl.keyStore=/etc/ssl/keystore.jks" "-Djavax.net.ssl.keyStorePassword=secret" "-Djavax.net.ssl.trustStore=/usr/local/openjdk-8/jre/lib/security/cacerts" "-Djavax.net.ssl.trustStorePassword=changeit"
- JAVA_OPTS="-Djavax.net.ssl.keyStore=/etc/ssl/keystore.jks" "-Djavax.net.ssl.keyStorePassword=secret" "-Djavax.net.ssl.trustStore=/usr/lib/jvm/java-21-openjdk-amd64/lib/security/cacerts" "-Djavax.net.ssl.trustStorePassword=changeit"
jpr_prodige_geonetwork_web:
environment:
- JAVA_OPTS="-Djavax.net.ssl.keyStore=/etc/ssl/keystore.jks" "-Djavax.net.ssl.keyStorePassword=secret" "-Djavax.net.ssl.trustStore=/usr/local/openjdk-8/jre/lib/security/cacerts" "-Djavax.net.ssl.trustStorePassword=changeit"
- JAVA_OPTS="-Djavax.net.ssl.keyStore=/etc/ssl/keystore.jks" "-Djavax.net.ssl.keyStorePassword=secret" "-Djavax.net.ssl.trustStore=/usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts" "-Djavax.net.ssl.trustStorePassword=changeit"
......@@ -56,6 +56,15 @@ services:
phppgadmin:
restart: "no"
image: docker.alkante.com/alk-phppgadmin:2.2
container_name: phppgadmin
environment:
- PPA_HOSTS=prodige_database
- PPA_PORTS=5432
env_file:
- ./data/conf/docker.env
depends_on:
- prodige_database
ppr_prodige_admin_web:
restart: "no"
......@@ -78,53 +87,52 @@ services:
# - ALL
ppr_prodige_admincarto_web:
restart: "no"
# image: ppr_prodige_admincarto_dev_web
# container_name: ppr_prodige_admincarto_web
# build: ../prodige/ppr_prodige_admincarto/cicd/dev/web
# command: entrypoint_dev # Avoid uprod.sh execution
# volumes:
# - ../prodige/ppr_prodige_admincarto:/var/www/html # Mount source code
# - ~/.ssh:/var/www/.ssh
# env_file:
# - ./docker-compose.env
# networks:
# default:
# aliases:
# - prodige-admincarto
# cap_add:
# - ALL
restart: "no"
image: ppr_prodige_admincarto_dev_web
container_name: ppr_prodige_admincarto_web
build: ../prodige/ppr_prodige_admincarto/cicd/dev/web
command: entrypoint_dev # Avoid uprod.sh execution
volumes:
- ../prodige/ppr_prodige_admincarto:/var/www/html # Mount source code
- ~/.ssh:/var/www/.ssh
env_file:
- ./docker-compose.env
networks:
default:
aliases:
- prodige-admincarto
cap_add:
- ALL
jpr_prodige_cas_web:
restart: "no"
# image: jpr_prodige_cas_dev_web
# container_name: jpr_prodige_cas_web
# build: ../prodige/jpr_prodige_cas/cicd/dev/web
# image: jpr_prodige_cas_dev_web
# container_name: jpr_prodige_cas_web
# build: ../prodige/jpr_prodige_cas/cicd/dev/web
environment:
- JAVA_OPTS="-Djavax.net.ssl.trustStore=/etc/ssl/truststore.jks" "-Djavax.net.ssl.trustStorePassword=secret"
volumes:
- ./data/cas/keystore/truststore.jks:/etc/ssl/truststore.jks:ro
# - ../prodige/jpr_prodige_cas/build/libs/cas:/var/lib/tomcat9/webapps/ROOT
# - ../prodige/jpr_prodige_cas/etc/cas:/etc/cas
# cap_add:
# - ALL
# - ../prodige/jpr_prodige_cas/build/libs/cas:/var/lib/tomcat10/webapps/ROOT
# cap_add:
# - ALL
ppr_prodige_catalogue_web:
restart: "no"
# image: ppr_prodige_catalogue_dev_web
# container_name: ppr_prodige_catalogue_web # Docker container name
# build: ../prodige/ppr_prodige_catalogue/cicd/dev/web # Build images with this ./Dockerfile
# command: entrypoint_dev # Avoid uprod.sh execution
# volumes:
# - ../prodige/ppr_prodige_catalogue:/var/www/html # Mount source code in container
# env_file:
# - ./docker-compose.env
# networks:
# default:
# aliases:
# - prodige-catalogue
# cap_add:
# - ALL
restart: "no"
# image: ppr_prodige_catalogue_dev_web
# container_name: ppr_prodige_catalogue_web # Docker container name
# build: ../prodige/ppr_prodige_catalogue/cicd/dev/web # Build images with this ./Dockerfile
# command: entrypoint_dev # Avoid uprod.sh execution
# volumes:
# - ../prodige/ppr_prodige_catalogue:/var/www/html # Mount source code in container
# env_file:
# - ./docker-compose.env
# networks:
# default:
# aliases:
# - prodige-catalogue
# cap_add:
# - ALL
ppr_prodige_contribution_web:
restart: "no"
......@@ -212,17 +220,17 @@ services:
# - ALL
ppr_prodige_mapserver_api_web:
restart: "no"
# image: ppr_prodige_mapserver_api_dev_web
# container_name: ppr_prodige_mapserver_api_web
# build: ../prodige/ppr_prodige_mapserver_api/cicd/dev/web
# command: entrypoint_dev # Prevent uprod.sh execution
# volumes:
# - ../prodige/ppr_prodige_mapserver_api:/var/www/html # Mount this code sources (../..) in container
# env_file:
# - ./docker-compose.env
# cap_add:
# - ALL
restart: "no"
image: ppr_prodige_mapserver_api_dev_web
container_name: ppr_prodige_mapserver_api_web
build: ../prodige/ppr_prodige_mapserver_api/cicd/dev/web
command: entrypoint_dev # Prevent uprod.sh execution
volumes:
- ../prodige/ppr_prodige_mapserver_api:/var/www/html # Mount this code sources (../..) in container
env_file:
- ./docker-compose.env
cap_add:
- ALL
ngpr_prodige_table_editeur_web:
restart: "no"
......@@ -349,6 +357,19 @@ services:
# cap_add:
# - ALL
# Pour utiliser bdl-alkante-visualiseur-core avec pr_prodige
# ngpr-prodige-visualiseur_web:
# restart: "no"
# image: ngpr-prodige-visualiseur_dev_web
# container_name: ngpr-prodige-visualiseur_web
# build: ../prodige/bdl-alkante-visualiseur-core/cicd/dev/web
# volumes:
# - ../prodige/bdl-alkante-visualiseur-core:/home/node/app # Mount this code sources (../..) in container
# env_file:
# - ./docker-compose.env
# cap_add:
# - ALL
ngpr_visualiseur_core_print_web:
restart: "no"
# image: ngpr_visualiseur_core_print_dev_web
......@@ -388,8 +409,21 @@ services:
# cap_add:
# - ALL
# EN DEVELOPPEMENT
# ngpr_prodige_vues_web:
# Pour utiliser bdl-alkante-visualiseur-core avec pr_prodige
rpr-prodige-geostyler-web:
restart: "no"
image: rpr-prodige-geostyler_dev_web
container_name: rpr-prodige-geostyler_web
build: ../prodige/rpr_prodige_geostyler/cicd/dev/web
volumes:
- ../prodige/rpr_prodige_geostyler:/home/node/app # Mount this code sources (../..) in container
env_file:
- ./docker-compose.env
cap_add:
- ALL
# EN DEVELOPPEMENT
# ngpr_prodige_vues_web:
# restart: "no"
# image: ngpr_prodige_vues_dev_web
# container_name: ngpr_prodige_vues_web
......
version: '3.5'
services:
ppr_prodige_admin_web:
image: docker.alkante.com/ppr_prodige_admin_web:5.0.132
image: docker.alkante.com/ppr_prodige_admin_web:5.0.184
container_name: ppr_prodige_admin_web
restart: on-failure:3
env_file:
......@@ -30,7 +30,7 @@ services:
- net_bind_service
ppr_prodige_admincarto_web:
image: docker.alkante.com/ppr_prodige_admincarto_web:5.0.91
image: docker.alkante.com/ppr_prodige_admincarto_web:5.0.114
container_name: ppr_prodige_admincarto_web
restart: on-failure:3
env_file:
......@@ -59,7 +59,7 @@ services:
- net_bind_service
jpr_prodige_cas_web:
image: docker.alkante.com/jpr_prodige_cas_web:5.1.0-alpha3
image: docker.alkante.com/jpr_prodige_cas_web:5.0.6
container_name: jpr_prodige_cas_web
restart: on-failure:3
env_file:
......@@ -91,7 +91,7 @@ services:
ppr_prodige_catalogue_web:
image: docker.alkante.com/ppr_prodige_catalogue_web:5.0.60
image: docker.alkante.com/ppr_prodige_catalogue_web:5.0.81
container_name: ppr_prodige_catalogue_web
restart: on-failure:3
env_file:
......@@ -125,7 +125,7 @@ services:
- prodige-catalogue
ppr_prodige_contribution_web:
image: docker.alkante.com/ppr_prodige_contribution_web:5.0.60
image: docker.alkante.com/ppr_prodige_contribution_web:5.0.81
container_name: ppr_prodige_contribution_web
restart: on-failure:3
env_file:
......@@ -152,7 +152,7 @@ services:
- net_bind_service
ngpr_prodige_contribution_web:
image: docker.alkante.com/ngpr_prodige_contribution_web:5.0.30
image: docker.alkante.com/ngpr_prodige_contribution_web:5.0.35
container_name: ngpr_prodige_contribution_web
restart: on-failure:3
env_file:
......@@ -192,7 +192,7 @@ services:
- audit_write
ppr_prodige_datacarto_web:
image: docker.alkante.com/ppr_prodige_datacarto_web:5.0.25
image: docker.alkante.com/ppr_prodige_datacarto_web:5.0.33
container_name: ppr_prodige_datacarto_web
restart: on-failure:3
env_file:
......@@ -241,7 +241,7 @@ services:
- net_bind_service
ppr_prodige_dataviz_web:
image: docker.alkante.com/ppr_prodige_dataviz_web:5.0.12
image: docker.alkante.com/ppr_prodige_dataviz_web:5.0.16
container_name: ppr_prodige_dataviz_web
restart: on-failure:3
env_file:
......@@ -268,7 +268,7 @@ services:
- net_bind_service
jpr_prodige_geonetwork_web:
image: docker.alkante.com/jpr_prodige_geonetwork_web:5.0.41
image: docker.alkante.com/jpr_prodige_geonetwork_web:5.0.48
container_name: jpr_prodige_geonetwork_web
restart: on-failure:3
env_file:
......@@ -298,7 +298,7 @@ services:
- ALL
ppr_prodige_mapserver_api_web:
image: docker.alkante.com/ppr_prodige_mapserver_api_web:5.0.10
image: docker.alkante.com/ppr_prodige_mapserver_api_web:5.0.13
container_name: ppr_prodige_mapserver_api_web
restart: on-failure:3
env_file:
......@@ -332,26 +332,6 @@ services:
cap_drop:
- ALL
phppgadmin:
image: docker.alkante.com/alk-phppgadmin:2.2
container_name: phppgadmin
restart: on-failure:3
environment:
- PPA_HOSTS=prodige_database
- PPA_PORTS=5432
env_file:
- ./data/conf/docker.env
depends_on:
- prodige_database
cap_drop:
- ALL
cap_add:
- chown
- dac_override
- fowner
- audit_write
- net_bind_service
ngpr_prodige_table_editeur_web:
image: docker.alkante.com/ngpr_prodige_table_editeur_web:4.4.6
container_name: ngpr_prodige_table_editeur_web
......@@ -371,7 +351,7 @@ services:
- net_bind_service
ppr_prodige_telechargement_web:
image: docker.alkante.com/ppr_prodige_telechargement_web:5.0.29
image: docker.alkante.com/ppr_prodige_telechargement_web:5.0.38
container_name: ppr_prodige_telechargement_web
restart: on-failure:3
env_file:
......@@ -399,7 +379,7 @@ services:
- net_bind_service
ppr_prodige_telechargement_queue:
image: docker.alkante.com/ppr_prodige_telechargement_web:5.0.29
image: docker.alkante.com/ppr_prodige_telechargement_web:5.0.38
container_name: ppr_prodige_telechargement_queue
command: entrypoint_queue
restart: on-failure:3
......@@ -428,7 +408,7 @@ services:
- net_bind_service
ngpr_prodige_telechargement_web:
image: docker.alkante.com/ngpr_prodige_telechargement_web:5.0.13
image: docker.alkante.com/ngpr_prodige_telechargement_web:5.0.15
container_name: ngpr_prodige_telechargement_web
restart: on-failure:3
env_file:
......@@ -473,7 +453,7 @@ services:
- net_bind_service
ngpr-prodige-visualiseur_web:
image: docker.alkante.com/ngpr-prodige-visualiseur_web:4.4.38
image: docker.alkante.com/ngpr-prodige-visualiseur_web:5.0.14
container_name: ngpr-prodige-visualiseur_web
restart: on-failure:3
env_file:
......@@ -491,7 +471,7 @@ services:
- net_bind_service
ppr_prodige_visualiseur_web:
image: docker.alkante.com/ppr_prodige_visualiseur_web:5.0.16
image: docker.alkante.com/ppr_prodige_visualiseur_web:5.0.18
container_name: ppr_prodige_visualiseur_web
restart: on-failure:3
env_file:
......@@ -499,7 +479,8 @@ services:
volumes:
- ./data/data:/var/www/html/data
- ./data/conf/global.env.local:/var/www/html/site/.env.local:ro
- ./data/admin/conf/env.prod:/var/www/html/site/.env.prod:ro
- ./data/visualiseur-back/conf/env.prod:/var/www/html/site/.env.prod:ro
- ./data/conf/epsg:/usr/share/proj/epsg:ro
- ./data/proxy/ssl/CA_Prodige.crt:/ca-certificates/CA_Prodige.crt:ro
- ./data/share/favicon.ico:/var/www/html/site/public/favicon.ico:ro
- ./var/visualiseur-back/log_phalcon:/var/www/html/site/var/log
......@@ -516,7 +497,7 @@ services:
- net_bind_service
ngpr_visualiseur_core_print_web:
image: docker.alkante.com/ngpr_visualiseur_core_print_web:4.4.2
image: docker.alkante.com/ngpr_visualiseur_core_print_web:4.4.7
container_name: ngpr_visualiseur_core_print_web
restart: on-failure:3
env_file:
......@@ -534,7 +515,7 @@ services:
- net_bind_service
ppr_prodige_vues_web:
image: docker.alkante.com/ppr_prodige_vues_web:5.0.13
image: docker.alkante.com/ppr_prodige_vues_web:5.0.19
container_name: ppr_prodige_vues_web
restart: on-failure:3
env_file:
......@@ -561,7 +542,7 @@ services:
- net_bind_service
ngpr_prodige_vues_web:
image: docker.alkante.com/ngpr_prodige_vues_web:5.0.10
image: docker.alkante.com/ngpr_prodige_vues_web:5.0.14
container_name: ngpr_prodige_vues_web
restart: on-failure:3
env_file:
......
......@@ -23,14 +23,14 @@
## C - Installation sur serveur de production
- Utilise [docker-compose.yml](../docker-compose.yml) et [production.yml](../docker-compose-custom/production.yml)
- Utilise [docker-compose.yml](../docker-compose.yml)
- Les conteneurs sont téléchargés.
- L'installation d'Elasticsearch n'est pas inclue.
- Voir fichier [installation_production.md](installation_production.md)
## D - Installation sur serveur de production sans le docker proxy
- Utilise [docker-compose.yml](../docker-compose.yml), [production.yml](../docker-compose-custom/production.yml) et [docker-compose.nginx.yml](../nginx/docker-compose.nginx.yml)
- Utilise [docker-compose.yml](../docker-compose.yml) et [docker-compose.nginx.yml](../nginx/docker-compose.nginx.yml)
- Les conteneurs sont téléchargés.
- L'installation d'Elasticsearch n'est pas inclue.
- Les certificats et la configuration du serveur web sont gérés en dehors du projet pr_prodige.
......
......@@ -15,7 +15,9 @@ Sinon voici la procédure
#### Autority
```bash
sudo su
cd data/proxy/ssl/
rm -rf db
mkdir -p db/ca.db.certs
echo '01'> db/ca.db.serial
cp /dev/null db/ca.db.index
......@@ -94,45 +96,35 @@ openssl x509 -noout -text -in prodige.crt
cat prodige.crt CA_Prodige.crt > prodige.chain.crt
```
Dans ce cas vous de devez pas utiliser le fichier production.yml lors d'une commande docker-compose
## Trustore/keystore java
### Création d'un `truststore` (contient le crt de confiance pour la connexion du client ssl)
#### Copy certificat for java services
```bash
sudo rm ./data/cas/keystore/truststore.jks
sudo keytool -import -trustcacerts -alias CA_Prodige -file ./data/proxy/ssl/${FILENAME}.crt -keystore ./data/cas/keystore/truststore.jks -storepass secret
sudo chmod 666 ./data/cas/keystore/truststore.jks
cp CA_Prodige.crt prodige.crt prodige.key ../../cas/ssl
exit # fin sudo
```
#### Tester le truststore.jks
```bash
keytool -list -v -alias CA_Prodige -keystore ./data/cas/keystore/truststore.jks
```
Dans ce cas vous de devez pas utiliser le fichier cert-auto-signed.yml lors d'une commande docker-compose
### Créer un `keystore` (contient `key` et `crt` pour la connexion au serveur SSL)
#### Trustore java
Création d'un `truststore` (contient le crt de confiance pour la connexion du client ssl)
```bash
sudo rm ./data/proxy/ssl/${FILENAME}.p12
sudo openssl pkcs12 -export -in ./data/proxy/ssl/${FILENAME}.crt -inkey ./data/proxy/ssl/${FILENAME}.key -out ./data/proxy/ssl/${FILENAME}.p12 -name prodige -password pass:secret
sudo rm ./data/cas/keystore/truststore.jks
sudo keytool -import -trustcacerts -alias CA_Prodige -file ./data/proxy/ssl/CA_Prodige.crt -keystore ./data/cas/keystore/truststore.jks -storepass secret
```
#### Vérifications
```bash
sudo keytool -list -v -keystore ./data/proxy/ssl/${FILENAME}.p12 \
-storepass secret \
-storetype PKCS12
sudo chmod 666 ./data/cas/keystore/truststore.jks
```
#### Conversion de p12 à jks :
#### Tester le truststore.jks
```bash
sudo keytool -importkeystore -srckeystore ./data/proxy/ssl/${FILENAME}.p12 -srcstoretype pkcs12 -srcalias prodige.internal -srcstorepass secret -destkeystore ./data/cas/keystore/keystore.jks -deststoretype jks -deststorepass secret -destalias prodige.internal
sudo keytool -list -v -alias CA_Prodige -keystore ./data/cas/keystore/truststore.jks
```
#### Vérification du `keystore`
#### Utilisation
Lancement via docker-compose avec ```-f cert-auto-signed.yml```
Exemple de lancement :
```bash
keytool -list -v -alias prodige.internal -keystore ./data/cas/keystore/keystore.jks -storepass secret
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f cert-auto-signed.yml pull
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f cert-auto-signed.yml up -d
```
......@@ -42,7 +42,7 @@ Si les domaines ne sont pas publics (tests), ajouter dans `/etc/hosts` une ligne
127.0.0.2 admin.prodige.internal admincarto.prodige.internal cas.prodige.internal catalogue.prodige.internal carto.prodige.internal contribution.prodige.internal datacarto.prodige.internal dataviz.prodige.internal mapserv.prodige.internal print.prodige.internal table.prodige.internal telechargement.prodige.internal traitement.prodige.internal vues.prodige.internal phppgadmin.prodige.internal
```
Pour utiliser un autre domaine que le domaine par défaut ci-dessus et s'il n'est pas public, il faut aussi changer les `aliases` du service `prodige-proxy` dans le docker-compose.override.yml (ou ajouter un autre fichier d'_override_ comme [production.yml](../production.yml) ou [local_build.yml](../local_build.yml), voir [documentation Docker compose sur les fichiers de surcharge](https://docs.docker.com/compose/extends/)).
Pour utiliser un autre domaine que le domaine par défaut ci-dessus et s'il n'est pas public, il faut aussi changer les `aliases` du service `prodige-proxy` dans le docker-compose.override.yml (ou ajouter un autre fichier d'_override_ comme [local_build.yml](../local_build.yml), voir [documentation Docker compose sur les fichiers de surcharge](https://docs.docker.com/compose/extends/)).
## Démarrage de Prodige (domaine .prodige.internal)
......
......@@ -221,7 +221,7 @@ Si les domaines ne sont pas publics (tests), ajouter dans `/etc/hosts` une ligne
127.0.0.2 admin.prodige.internal admincarto.prodige.internal cas.prodige.internal catalogue.prodige.internal carto.prodige.internal contribution.prodige.internal datacarto.prodige.internal dataviz.prodige.internal mapserv.prodige.internal print.prodige.internal table.prodige.internal telechargement.prodige.internal traitement.prodige.internal vues.prodige.internal phppgadmin.prodige.internal
```
Pour utiliser un autre domaine que le domaine par défaut ci-dessus et s'il n'est pas public, il faut aussi changer les `aliases` du service `prodige-proxy` dans le [docker-compose.override.yml](../docker-compose.override.yml) (ou ajouter un autre fichier d'_override_ comme [production.yml](../production.yml) ou [local_build.yml](../local_build.yml), voir [documentation Docker compose sur les fichiers de surcharge](https://docs.docker.com/compose/extends/)).
Pour utiliser un autre domaine que le domaine par défaut ci-dessus et s'il n'est pas public, il faut aussi changer les `aliases` du service `prodige-proxy` dans le [docker-compose.override.yml](../docker-compose.override.yml) (ou ajouter un autre fichier d'_override_ ), voir [documentation Docker compose sur les fichiers de surcharge](https://docs.docker.com/compose/extends/)).
## Démarrage de Prodige (domaine .prodige.internal)
Lancement des bases de données
......
......@@ -2,9 +2,11 @@
L'installation pour le développement reprend le principe de l'installation en local [installation.md](installation.md).
En mode développement, l'_override_ [development.yml](../development.yml) remplace l'_override_ [docker-compose.override.yml](docker-compose.override.yml).
En mode développement, l'_override_ [development.yml](../development.yml) remplace l'
_override_ [docker-compose.override.yml](docker-compose.override.yml).
Pour cela il faut explicitement l'utiliser en ligne de commande avec l'option `-f` de `docker-compose` dans **tous les appels à `docker-compose`**.
Pour cela il faut explicitement l'utiliser en ligne de commande avec l'option `-f` de `docker-compose` dans **tous les
appels à `docker-compose`**.
Pour la simplicité, il est recommandé de déclarer un _alias_ Bash de la façon suivante :
......@@ -14,25 +16,37 @@ alias docker-compose-dev="docker-compose -f docker-compose.yml -f development.ym
à mettre dans le fichier `~/.bashrc` pour l'avoir de façon permanente.
## Elasticsearch de test et développement
Par défaut Geonetwork a désormais besoin de l'accès à un Elasticsearch. L'URL d'un Elastisearch préexistant installé par vos soins peut être fourni à la commande `sudo ./bin/make_init_and_rights.sh`. Voir [installation.md](installation.md).
Par défaut Geonetwork a désormais besoin de l'accès à un Elasticsearch. L'URL d'un Elastisearch préexistant installé par
vos soins peut être fourni à la commande `sudo ./bin/make_init_and_rights.sh`. Voir [installation.md](installation.md).
Cependant, pour faciliter les tests et développements de Prodige, l'_override_ [development.yml](../development.yml)
fournit un Docker Elasticsearch simple permettant de faire fonctionner Geonetwork. Il est à noter que celui-ci ne
respecte pas les préconisations techniques d'Elasticsearch en production ([3
_nodes_ au minimum](https://www.elastic.co/guide/en/elasticsearch/reference/7.8/high-availability-cluster-small-clusters.html))
c'est pourquoi nous le fournissons dans le seul cadre du développement.
Cependant, pour faciliter les tests et développements de Prodige, l'_override_ [development.yml](../development.yml) fournit un Docker Elasticsearch simple permettant de faire fonctionner Geonetwork. Il est à noter que celui-ci ne respecte pas les préconisations techniques d'Elasticsearch en production ([3 _nodes_ au minimum](https://www.elastic.co/guide/en/elasticsearch/reference/7.8/high-availability-cluster-small-clusters.html)) c'est pourquoi nous le fournissons dans le seul cadre du développement.
Il peut être nécessaire d'augmenter certains paramètres mémoire pour permettre le démarrage du docker elastic via la
commande suivante :
Il peut être nécessaire d'augmenter certains paramètres mémoire pour permettre le démarrage du docker elastic via la commande suivante :
```bash
sudo sysctl -w vm.max_map_count=262144
```
La commande `bin/make_init_and_rights.sh` dispose également d'une option `--dev` qui fait tourner les différents modules Docker avec les droits Unix du développeur assimilés à ceux de `www-data`. Cela permet d'éditer les différents fichiers de configuration (sans avoir à passer `root` pour modifier les fichiers propriété de `www-data` ce qui est le fonctionnement par défaut des modules Prodige).
La commande `bin/make_init_and_rights.sh` dispose également d'une option `--dev` qui fait tourner les différents modules
Docker avec les droits Unix du développeur assimilés à ceux de `www-data`. Cela permet d'éditer les différents fichiers
de configuration (sans avoir à passer `root` pour modifier les fichiers propriété de `www-data` ce qui est le
fonctionnement par défaut des modules Prodige).
## Utilisation des constructions de développement depuis `pr_prodige`
On suppose, comme c'est la pratique établie, qu'à côté du répertoire `pr_prodige` se tient un répertoire de développement `prodige` contenant les sources des différents modules de Prodige (chacun sur sa branche désirée).
On suppose, comme c'est la pratique établie, qu'à côté du répertoire `pr_prodige` se tient un répertoire de
développement `prodige` contenant les sources des différents modules de Prodige (chacun sur sa branche désirée).
Il est possible d'utiliser le Docker de développement des projets sur lesquels un développement doit avoir lieu en décommentant les lignes qui le concernent dans l'_override_ [development.yml](../development.yml) (**attention à préserver l'indentation YAML du fichier**).
Il est possible d'utiliser le Docker de développement des projets sur lesquels un développement doit avoir lieu en
décommentant les lignes qui le concernent dans l'_override_ [development.yml](../development.yml) (**attention à
préserver l'indentation YAML du fichier**).
## Arrêt des Docker de Prodige
......@@ -45,8 +59,9 @@ docker-compose-dev down
## Effacer **toutes** les données persistantes pour repartir de zéro
Les volumes des Docker utilisés par Prodige sont exclusivement dans :
- data
- var
- data
- var
à la racine de `pr_prodige`.
......@@ -61,6 +76,7 @@ sudo rm -rf data var
En ayant déclaré l'alias `docker-compose-dev` plus haut.
### Connexion au docker registry
- Utilisateur : prodige
- Mot de passe : Yx@KN,ZXzR9u@
......@@ -82,7 +98,8 @@ Mapping du développeur avec www-data du conteneur :
echo -e "LOCAL_USER_ID=$(id -u)\nLOCAL_GROUP_ID=33" > docker-compose.env;
```
Accès aux fichiers créés par les conteneurs (à faire une fois pour toutes et n'est actif qu'après un redémarrage de la session de l'utilisateur) :
Accès aux fichiers créés par les conteneurs (à faire une fois pour toutes et n'est actif qu'après un redémarrage de la
session de l'utilisateur) :
```bash
if ! [ $(groups $USER | grep -o www-data) ] ; then sudo usermod -a -G www-data $USER && echo "Redémarrer la session de $USER" ; fi
......@@ -98,16 +115,19 @@ docker-compose-dev pull
```
Lancement des bases de données
```bash
docker-compose-dev up -d prodige_database
```
Lancement des applicatifs
```bash
docker-compose-dev up -d
```
Journaux
```bash
docker-compose-dev logs -t -f
```
......@@ -118,27 +138,52 @@ docker-compose-dev logs -t -f
sudo ./bin/set_prodige_init_data.sh -d .prodige.internal
```
### Premier démarrage du catalogue
Lors du premier démarrage du catalogue, il est possible que le cache du catalogue soit dans un état incorrect. Dans ce cas de figure une popin d'erreur rouge apparaît à l'écran sur la page d'accueil. Pour solutionner le problème, il faut forcer la régénération du cache. Pour cela :
Lors du premier démarrage du catalogue, il est possible que le cache du catalogue soit dans un état incorrect. Dans ce
cas de figure une popin d'erreur rouge apparaît à l'écran sur la page d'accueil. Pour solutionner le problème, il faut
forcer la régénération du cache. Pour cela :
- Accéder à l'URL d'administration du catalogue : [https://catalogue.prodige.internal/geonetwork/srv/fre/admin.console#/tools](https://catalogue.prodige.internal/geonetwork/srv/fre/admin.console#/tools)
- Accéder à l'URL d'administration du
catalogue : [https://catalogue.prodige.internal/geonetwork/srv/fre/admin.console#/tools](https://catalogue.prodige.internal/geonetwork/srv/fre/admin.console#/tools)
- Cliquer sur les boutons "Vider le cache JS & CSS" et "Ré-indexer les fiches"
- Revenir sur la page d'accueil et raffraichissez la page pour vous assurer de la disparition de la popin d'erreur.
### Upgrade de Geonetwork et CAS
Lors des différentes montées en versions de ces deux services, les configurations Tomcat peuvent évoluer. En cas de
problème, synchroniser les fichiers suivant:
```bash
sudo mv data/cas/conf/cas.properties data/cas/conf/cas.properties.bk
sudo rm data/cas/conf/log4j2.xml
sudo rm data/cas/conf/server.xml
sudo rm data/geonetwork/conf/server.xml
````
puis lancer une synchronisation des nouveaux fichiers
```bash
sudo ./bin/make_init_and_rights.sh --dev
```
Enfin, vérifier votre configuration du CAS entre ```data/cas/conf/cas.properties.bk``` et ```data/cas/conf/cas.properties``` et appliquer les modifications nécessaires.
### Démarrer le développement sur un module de Prodige
Il doit être présent sur la bonne branche dans `prodige/nom_du_module`, répertoire présent à côte de `pr_prodige`.
Supprimer les commentaires correspondant à ce module dans [development.yml](../development.yml) (en préservant l'indentation du fichier).
Supprimer les commentaires correspondant à ce module dans [development.yml](../development.yml) (en préservant
l'indentation du fichier).
Construction locale des modules en développement :
```bash
docker-compose-dev build
```
Lancement des applicatifs
```bash
docker-compose-dev up -d --remove-orphans
```
......
......@@ -9,6 +9,30 @@
- les données ;
- les bases de données.
## Mise en place du dns :
Adresse IP de la machine :
```
prodige 10800 IN A X.X.X.X
prodige 10800 IN AAAA Y:Y:Y:Y:Y:Y:Y:Y
```
Entrée DNS pour prodige (modification possible):
```
admin 10800 In CNAME prodige
admincarto 10800 In CNAME prodige
cas 10800 In CNAME prodige
catalogue 10800 In CNAME prodige
carto 10800 In CNAME prodige
contribution 10800 In CNAME prodige
datacarto 10800 In CNAME prodige
dataviz 10800 In CNAME prodige
mapserv 10800 In CNAME prodige
print 10800 In CNAME prodige
table 10800 In CNAME prodige
telechargement 10800 In CNAME prodige
traitement 10800 In CNAME prodige
vues 10800 In CNAME prodige
```
## Initalisation des volumes de données et URL Elasticsearch
- data
......@@ -24,7 +48,7 @@ Vous devez mettre en place un elasticsearch en production par votre propre moyen
Voir documentation [generation_certificats.md](generation_certificats.md)
## Domaine
Pour utiliser un autre domaine que le domaine par défaut et s'il n'est pas public, il faut aussi changer les `aliases` du service `prodige-proxy` dans le docker-compose.override.yml (ou ajouter un autre fichier d'_override_ comme production.yml ou local_build.yml, voir [documentation Docker compose sur les fichiers de surcharge](https://docs.docker.com/compose/extends/)).
Pour utiliser un autre domaine que le domaine par défaut et s'il n'est pas public, il faut aussi changer les `aliases` du service `prodige-proxy` dans le docker-compose.override.yml (ou ajouter un autre fichier d'_override_ comme local_build.yml, voir [documentation Docker compose sur les fichiers de surcharge](https://docs.docker.com/compose/extends/)).
## Initialisation des paramètres
Cela concerne les mots de passe de bdd, la timezone, le relai SMTP
......@@ -43,22 +67,22 @@ sudo ./bin/move_prodige_url_parameters.sh -d <your domain>
- Mot de passe : Yx@KN,ZXzR9u@
```bash
docker login docker.alkante.com -u prodige
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml pull
docker-compose -f docker-compose.yml -f docker-compose.override.yml pull
```
Lancement des bases de données
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml up -d prodige_database
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d prodige_database
```
Lancement des applicatifs
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml up -d
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
```
## Journaux
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs -f
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs -f
```
## Intégration des données minimales
......@@ -72,7 +96,7 @@ Les containers vont mettre un certain temps de démarrage. Voici des commandes p
### Base de données
BDD postgres :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs prodige_database
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs prodige_database
...
LOG: le système de bases de données est prêt pour accepter les connexions
```
......@@ -80,14 +104,14 @@ LOG: le système de bases de données est prêt pour accepter les connexions
### App prodige
Admin (migration de bdd):
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_admin_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_admin_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Admincarto (migration de bdd):
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_admincarto_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_admincarto_web
...
++ finished in X.Xs
++ X migrations executed
......@@ -98,7 +122,7 @@ ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
CAS :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs jpr_prodige_cas_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs jpr_prodige_cas_web
...
- <Configuration files found at [/etc/cas/config] are [[/etc/cas/config/cas.properties]] under profile(s) [[standalone]]>
...
......@@ -106,7 +130,7 @@ docker-compose -f docker-compose.yml -f docker-compose.override.yml -f productio
Catalogue (migration de bdd):
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_catalogue_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_catalogue_web
...
++ finished in X.Xs
++ X migrations executed
......@@ -117,28 +141,28 @@ ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
Contribution :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_contribution_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_contribution_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Datacarto :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_datacarto_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_datacarto_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Dataviz :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_dataviz_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_dataviz_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Geonetwork :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs jpr_prodige_geonetwork_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs jpr_prodige_geonetwork_web
...
- Data directory provided could not be used. Using default location: /usr/local/tomcat/webapps/geonetwork/WEB-INF/data
...
......@@ -146,49 +170,49 @@ docker-compose -f docker-compose.yml -f docker-compose.override.yml -f productio
Mapserver :
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_mapserver_api_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_mapserver_api_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Telechargement
```bash
docker-compose -f docker-compose.yml f docker-compose.override.yml -f production.yml logs ppr_prodige_telechargement_web
docker-compose -f docker-compose.yml f docker-compose.override.yml logs ppr_prodige_telechargement_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Telechargement queue
```bash
docker-compose -f docker-compose.yml f docker-compose.override.yml -f production.yml logs ppr_prodige_telechargement_queue
docker-compose -f docker-compose.yml f docker-compose.override.yml logs ppr_prodige_telechargement_queue
...
ENTRYPOINT: Run messenger:consume
```
Traitement
```bash
docker-compose -f docker-compose.yml f docker-compose.override.yml -f production.yml logs ppr_prodige_traitement_web
docker-compose -f docker-compose.yml f docker-compose.override.yml logs ppr_prodige_traitement_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Visualiseur
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_visualiseur_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_visualiseur_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Vues
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs ppr_prodige_vues_web
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs ppr_prodige_vues_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Proxy
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml logs prodige-proxy
docker-compose -f docker-compose.yml -f docker-compose.override.yml logs prodige-proxy
...
1#1: start worker processes
...
......@@ -209,5 +233,5 @@ sudo ./bin/move_prodige_url_db.sh -d <your domain>
## Arrêt
```bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f production.yml down
docker-compose -f docker-compose.yml -f docker-compose.override.yml down
```
......@@ -9,6 +9,30 @@
- les données ;
- les bases de données.
## Mise en place du dns :
Adresse IP de la machine :
```
prodige 10800 IN A X.X.X.X
prodige 10800 IN AAAA Y:Y:Y:Y:Y:Y:Y:Y
```
Entrée DNS pour prodige (modification possible):
```
admin 10800 In CNAME prodige
admincarto 10800 In CNAME prodige
cas 10800 In CNAME prodige
catalogue 10800 In CNAME prodige
carto 10800 In CNAME prodige
contribution 10800 In CNAME prodige
datacarto 10800 In CNAME prodige
dataviz 10800 In CNAME prodige
mapserv 10800 In CNAME prodige
print 10800 In CNAME prodige
table 10800 In CNAME prodige
telechargement 10800 In CNAME prodige
traitement 10800 In CNAME prodige
vues 10800 In CNAME prodige
```
## Initalisation des volumes de données et URL Elasticsearch
- data
......@@ -41,22 +65,22 @@ sudo ./bin/move_prodige_url_parameters.sh -d <your domain>
- Mot de passe : Yx@KN,ZXzR9u@
```bash
docker login docker.alkante.com -u prodige
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml pull
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml pull
```
Lancement des bases de données
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml up -d prodige_database
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml up -d prodige_database
```
Lancement des applicatifs
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml up -d
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml up -d
```
## Journaux
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs -f
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs -f
```
## Intégration des données minimales
......@@ -70,7 +94,7 @@ Les containers vont mettre un certain temps de démarrage. Voici des commandes p
### Base de données
BDD postgres :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs prodige_database
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs prodige_database
...
LOG: le système de bases de données est prêt pour accepter les connexions
```
......@@ -78,14 +102,14 @@ LOG: le système de bases de données est prêt pour accepter les connexions
### App prodige
Admin (migration de bdd) :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_admin_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_admin_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Admincarto (migration de bdd):
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_admincarto_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_admincarto_web
...
++ finished in X.Xs
++ X migrations executed
......@@ -96,7 +120,7 @@ ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
CAS :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs jpr_prodige_cas_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs jpr_prodige_cas_web
...
- <Configuration files found at [/etc/cas/config] are [[/etc/cas/config/cas.properties]] under profile(s) [[standalone]]>
...
......@@ -104,7 +128,7 @@ docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f produc
Catalogue (migration de bdd):
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_catalogue_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_catalogue_web
...
++ finished in X.Xs
++ X migrations executed
......@@ -115,28 +139,28 @@ ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
Contribution :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_contribution_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_contribution_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Datacarto :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_datacarto_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_datacarto_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Dataviz :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_dataviz_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_dataviz_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Geonetwork :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs jpr_prodige_geonetwork_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs jpr_prodige_geonetwork_web
...
- Data directory provided could not be used. Using default location: /usr/local/tomcat/webapps/geonetwork/WEB-INF/data
...
......@@ -144,49 +168,49 @@ docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f produc
Mapserver :
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_mapserver_api_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_mapserver_api_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Telechargement
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_telechargement_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_telechargement_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Telechargement queue
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_telechargement_queue
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_telechargement_queue
...
ENTRYPOINT: Run messenger:consume
```
Traitement
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_traitement_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_traitement_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Visualiseur
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_visualiseur_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_visualiseur_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Vues
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs ppr_prodige_vues_web
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs ppr_prodige_vues_web
...
ENTRYPOINT: Run apache : apache2ctl -D FOREGROUND
```
Proxy
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml logs prodige-proxy
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml logs prodige-proxy
...
1#1: start worker processes
...
......@@ -207,5 +231,5 @@ sudo ./bin/move_prodige_url_db.sh -d <your domain>
## Arrêt
```bash
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml -f production.yml down
docker-compose -f docker-compose.yml -f nginx/docker-compose.nginx.yml down
```
......@@ -8,7 +8,8 @@ Pour plus de sécurité, le mot de passe change en version 5. Il est nécessaire
## Configurations
- Reconstruction du cache Geonetwork et indexation (connexion préalable nécessaire) : cliquer sur les liens "Supprimer l'index et réindexer", "vider le cache de mise en page", "vider le cache JS et CSS".
- revalidation d'un sous-domaine pour reconstruire le thésaurus
- Reconstruction du cache Geonetwork et indexation (connexion préalable nécessaire) : cliquer sur les liens "Supprimer l'index et réindexer", "vider le cach1e de mise en page", "vider le cache JS et CSS".
https://catalogue.prodige.internal/geonetwork/srv/fre/admin.console#/tools
- créer un modèle de carte pour la contribution
......
......@@ -131,6 +131,6 @@ cas.authn.pac4j.oidc[0].generic.response-type=code
cas.authn.pac4j.oidc[0].generic.scope=openid email profile uid given_name idp_id
cas.authn.pac4j.oidc[0].generic.preferred-jws-algorithm=RS256
cas.authn.pac4j.oidc[0].generic.disable-pkce=true
cas.authn.pac4j.oidc[0].generic.callback-url=https://cas-test.prodige-ecolab.fr/login
cas.authn.pac4j.oidc[0].generic.callback-url=https://cas.prodige.internal/login
cas.authn.pac4j.oidc[0].generic.mapped-claims="directed list"
cas.authn.pac4j.oidc[0].generic.css-class="fr-connect"
\ No newline at end of file
#!/bin/sh
echo "integrating iframe"
grep -q 'datahub/header' /usr/share/nginx/html/datahub/index.html || sed -i '/<body>/a <iframe src="/datahub/header" width="100%"; height="38px"></iframe>' /usr/share/nginx/html/datahub/index.html
grep -q 'header/datahub' /usr/share/nginx/html/datahub/index.html || sed -i '/<body>/a <iframe src="/header/datahub" class="w-screen" width="100%"; height="53.3px"></iframe>' /usr/share/nginx/html/datahub/index.html
passwordSalt=
\ No newline at end of file
passwordSalt=secret-hash-salt=
\ No newline at end of file