We re-introduce the dependency of the nginx container on the lms/cms
images. This dependency was removed to address a debugging scenario
which is actually not practical. Without this dependency, we are forced
to use an external docker-specific resolver which makes the local nginx
configuration incompatible with the kubernetes configuration.
Portainer is no longer a global activation flag, because it does not
make much sense in the context of kubernetes. Instead, we use a simpler
"make" command.
Creating soft links to files that do not exist is just madness, let's
stop it. Instead, we take advantage of the CONFIG_ROOT environment
variable, which allows to place lms/cms.env/auth.json files anywhere.
"env" now only generates the environment, and depends only on
config.json, which is run only when necessary. There exists only one
"make configure" command, which force-runs config.json and builds the
env.
By switching from ubuntu:18.04 to alpine, we reduce the local image size
from 510 to 87 Mb. Because we don't use bash anymore, it's difficult to
rely on chroot, so we just get rid of docker-entrypoint.sh
This allows us to deploy much faster: all we have to do is to copy the
assets from the container to the shared volume.
We also changed the way themes are managed: similarly to static assets,
they are now packaged inside the docker image.
By default, open response assessment files are sent to S3. Here, we
store uploaded files with the "filesystem" backend instead. To do so, we
must install a forked version of ora2 that fixes a couple issues.
Note that the "django" backend is not very usable, as file extensions
are lost on upload.
Close #97
We don't need to run "chmod" on openedx files outside of development
mode. So, there is no need to set the USERID environment variable in
most cases. This should considerably accelerate pretty much all commands
that involve the openedx container.
For discussion consult PR #98.
webpack requires the NODE_ENV environment variable which is incorrectly
set "paver update_assets" in development mode. To avoid this issue, we
split update_assets into its subparts.