* use yarn and debian slim build
* feat: update Dockerfile to use multistage builds
* Create main.yml
* remove some useless things from docker context and assume yarn by default
* remove all dotfiles in docker context
* no need for extra build tools, complain to the module author if there is no alpine build
(cherry picked from commit 90516a3c8399e74c38be7115edb39411ba0d86b9)
* specify the config file location instead of creating it
(cherry picked from commit 38e4295d70682f1049fe671ade96eeccd669d908)
* set explicit config path
(cherry picked from commit 8dcc6f249d099cb8939a95511ec13702491958bc)
* fix docker-compose example to use the exposed volumes
* dockerfile: upgrade alpine to 3.16
* dockerignore: add more ignorable entries
* docker-compose: change the way the docker startup process works
* install: pass config path to child process as well
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* setup: move config file resolution up before setup
This fixes issue with different config file location, which will otherwise default on 'config.json', which means the config save won't save to the file we specified
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: don't fix CONFIG_DIR location but fix default location
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: handle missing config file logic
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* README: add simple notice on how to use it
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* add missing semicolons
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-compose: remove multi override, use one big profile instead
However, Docker Compose doesn't support profile-based dependency and this would probably means we have less guarantee about the liveness of the database. But since this is just a sample configuration it should be fine
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* workflows: remove main.yml, add platforms to buildx matrix in docker.yml
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* workflows: set docker buildx to build for amd64 and arm64 only
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: don't force build everytime before start
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: implement init verb
This would allow you to change between "setup" (automated setup using environmental variables which is the current preferred way to run containerized NodeBB) or "install" (web install that guides user to fill in connection information, which is similar to WordPress)
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* README: mention caveat with MongoDB
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* README: add Docker section placeholder for doc migration
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: add SETUP variable support
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-compose: add force flag to ln on setup
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-compose: fix permission issue; docker-compose: fast exit if still no permission on config dir
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* fix: remove redundant FROM
* docs: remove docker stuff (in favour of docs entry, nodebb/docs#78) but add link to cloud install docs
* fix: correctly check if directory is writable
* fix: ignore .docker directory
* fix: multi-arch docker builds and chown performance
* chore: bump database image versions
* fix: move from alpine to slim image
* fix: use omit=dev instead of only=prod
* feat: move entrypoint to install directory
* feat: initialize mongodb user
* feat: use separate rebuild stage
* fix: disable eslint for mongodb script
* fix: remove node_modules bind mount
bind mounts don't save data from container, resulting in a LOONG startup
* feat: prepopulate database defaults for installation
* feat: enable persistence in redis container
* docs: add some comments to the compose file
---------
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
Co-authored-by: Steve Fan <29133953+stevefan1999-personal@users.noreply.github.com>
Co-authored-by: Steve Fan <19037626d@connect.polyu.hk>
Co-authored-by: Julian Lam <julian@nodebb.org>