You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
* Minimal =compose.yml=
#+begin_src yaml gogocarto: options: admin-password: MYADMINPASSWORD #+end_src
* Charm note and status
As the current docker install of gogocarto as of <2020-10-20 Tue> is far from being mature, we try here to get only the released part.
We are talking of: [[https://gitlab.adullact.net/pixelhumain/GoGoCarto/-/blob/f3c10f16fc08b533ef44f1325fdb50f87fa73224/docs/installation_docker.md][gogocarto docker install documentation]]
** Updating
This process will ensure to avoid rebuilding the gigantic intermediate image needed (with apache and build/install tools).
You need to run this from the root of a code checkout of: https://gitlab.com/Seballot/gogocarto, on the version you want to produce a release from.
#+begin_src sh docker_tree_hash=$(git rev-parse HEAD:docker) ## Intermediate docker image is cached on docker.0k.io if needed if ! docker pull docker.0k.io/gogocarto-builder:${docker_tree_hash}; then make docker-build && docker tag gogocarto_gogocarto:latest docker.0k.io/gogocarto-builder:${docker_tree_hash} && docker push docker.0k.io/gogocarto-builder:${docker_tree_hash} || { echo "You don't seem to be able to push something on docker.0k.io, that's ok." } else docker tag docker.0k.io/gogocarto-builder:${docker_tree_hash} gogocarto_gogocarto:latest fi make up && docker-compose exec gogocarto make init #+end_src
Last =make init= is building the actual code to be served.
** Full release is cached on =docker.0k.io/downloads=
This is the content of the source tree, once populated by =make init=.
*** mongodb initialisation is not included in source and is handled by the charm
As of <2022-12-03 Sat>, the =Makefile='s =init= target is:
#+begin_quote $ grep ^init Makefile -A1 init: install assets load-fixtures fix-perms ## Initialize the project
#+end_quote
Note that =load-fixtures= target is actually the mongodb initialization:
#+begin_src sh load-fixtures: ## Create the DB schema, generate DB classes and load fixtures $(SYMFONY) doctrine:mongodb:schema:create $(SYMFONY) doctrine:mongodb:generate:hydrators $(SYMFONY) doctrine:mongodb:generate:proxies $(SYMFONY) doctrine:mongodb:fixtures:load -n #+end_src
This is be done in the =hooks/mongo_database-relation-joined= accordingly.
*** create the full release bundle
#+begin_src sh ## Force original versions git co web/index.php config/packages/doctrine_mongodb.yaml bin/console sed -ri "s/^(<\?php)/\1\n\ini_set('memory.limit', '1024M');/" \ web/index.php bin/console sed -ri "s/\"use_as_saas=%env\(resolve:USE_AS_SAAS\)%\/%env\(resolve:DATABASE_NAME\)%\"/'%env(resolve:DATABASE_NAME)%'/g" \ config/packages/doctrine_mongodb.yaml
## Add missing tags in git git log --format="%H" -- config/parameters.yaml | while read h; do printf "%s\t%s\n" "$h" "$(git show $h:config/parameters.yaml | grep version | cut -f 2 -d ":" | xargs echo)" done | uniq -f 1 | while read a b; do git tag "$b" "$a" 2>/dev/null done commit_sha=$(git describe HEAD --tags) tar cjv \ --exclude=.git --exclude=.gitignore --exclude=.github \ --owner=root --group=root \ bin web vendor config src templates translations \ > gogocarto-${commit_sha}.tar.bz2 #+end_src
This is still far from being perfect, I wonder if we can just remove all non '\*.{php,yml,js}' files. I noticed many many unrelated files in =vendor/=.
We need =bin= for symphony utilities that allows to setup things.
|