diff --git a/docs/install.rst b/docs/install.rst index 0c39f1e..f328ac8 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -9,7 +9,7 @@ Requirements ------------ * Supported OS: Tutor runs on any 64-bit, UNIX-based OS. It was also reported to work on Windows (with `WSL 2 `__). -* Architecture: support for ARM64 is a work-in-progress. See `this issue `__. +* Architecture: Both AMD64 and ARM64 are supported. * Required software: - `Docker `__: v20.10.15+ @@ -114,7 +114,7 @@ Upgrading to a new Open edX release Major Open edX releases are published twice a year, in June and December, by the Open edX `Build/Test/Release working group `__. When a new Open edX release comes out, Tutor gets a major version bump (see :ref:`versioning`). Such an upgrade typically includes multiple breaking changes. Any upgrade is final because downgrading is not supported. Thus, when upgrading your platform from one major version to the next, it is strongly recommended to do the following: 1. Read the changes listed in the `CHANGELOG.md `__ file. Breaking changes are identified by a "💥". -2. Perform a backup. On a local installation, this is typically done with:: +2. Perform a backup (see the :ref:`backup tutorial `). On a local installation, this is typically done with:: tutor local stop sudo rsync -avr "$(tutor config printroot)"/ /tmp/tutor-backup/ diff --git a/docs/intro.rst b/docs/intro.rst index bbef116..81d59e0 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -51,7 +51,7 @@ Tutor simplifies the deployment of Open edX by: :width: 500px :align: center -Because Docker containers are becoming an industry-wide standard, that means that with Tutor it becomes possible to run Open edX anywhere: for now, Tutor supports deploying on a local server, with `docker-compose `_, and in a large cluster, with `Kubernetes `_. But in the future, Tutor may support other deployment platforms. +Because Docker containers are becoming an industry-wide standard, that means that with Tutor it becomes possible to run Open edX anywhere: for now, Tutor supports deploying on a local server, with `docker compose `_, and in a large cluster, with `Kubernetes `_. But in the future, Tutor may support other deployment platforms. Where can I try Open edX and Tutor? ----------------------------------- @@ -101,7 +101,7 @@ You can now take advantage of the Tutor-powered CLI (item #3) to bootstrap your tutor local launch -Under the hood, Tutor simply runs ``docker-compose`` and ``docker`` commands to launch your platform. These commands are printed in the standard output, such that you are free to replicate the same behaviour by simply copying/pasting the same commands. +Under the hood, Tutor simply runs ``docker compose`` and ``docker`` commands to launch your platform. These commands are printed in the standard output, such that you are free to replicate the same behaviour by simply copying/pasting the same commands. How do I navigate Tutor's command-line interface? ------------------------------------------------- diff --git a/docs/k8s.rst b/docs/k8s.rst index a7a80ad..3d934d2 100644 --- a/docs/k8s.rst +++ b/docs/k8s.rst @@ -119,7 +119,7 @@ Common tasks Executing commands inside service pods ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The Tutor and plugin documentation usually often instructions to execute some ``tutor local run ...`` commands. These commands are only valid when running Tutor locally with docker-compose, and will not work on Kubernetes. Instead, you should run ``tutor k8s exec ...`` commands. Arguments and options should be identical. +The Tutor and plugin documentation usually often instructions to execute some ``tutor local run ...`` commands. These commands are only valid when running Tutor locally with docker compose, and will not work on Kubernetes. Instead, you should run ``tutor k8s exec ...`` commands. Arguments and options should be identical. For instance, to run a Python shell in the lms container, run:: diff --git a/docs/local.rst b/docs/local.rst index 62cb431..7f3ebcb 100644 --- a/docs/local.rst +++ b/docs/local.rst @@ -6,7 +6,7 @@ Local deployment This method is for deploying Open edX locally on a single server, where docker images are orchestrated with `docker-compose `_. .. note:: - Tutor is compatible with the ``docker compose`` subcommand. However, this support is still in beta and we're not sure it will behave the same as the previous ``docker-compose`` command. So ``docker-compose`` will be preferred, unless you set an environment variable ``TUTOR_USE_COMPOSE_SUBCOMMAND`` to enforce using ``docker compose``. + As of v16.0.0, Tutor now uses the ``docker compose`` subcommand instead of the separate ``docker-compose`` command. .. _tutor_root: diff --git a/docs/tutorials/datamigration.rst b/docs/tutorials/datamigration.rst index 95bfb86..8434eee 100644 --- a/docs/tutorials/datamigration.rst +++ b/docs/tutorials/datamigration.rst @@ -1,3 +1,5 @@ +.. _backup_tutorial: + Making backups and migrating data --------------------------------- @@ -10,7 +12,7 @@ With Tutor, all data are stored in a single folder. This means that it's extreme 3. Transfer the configuration, environment, and platform data from server 1 to server 2:: - rsync -avr "$(tutor config printroot)/" username@server2:/tmp/tutor/ + sudo -avr "$(tutor config printroot)/" username@server2:/tmp/tutor/ 4. On server 2, move the data to the right location:: diff --git a/tutor/commands/compose.py b/tutor/commands/compose.py index baa1ca0..0f19e3a 100644 --- a/tutor/commands/compose.py +++ b/tutor/commands/compose.py @@ -272,7 +272,7 @@ def reboot(context: click.Context, detach: bool, services: list[str]) -> None: @click.command( short_help="Restart some components from a running platform.", help="""Specify 'openedx' to restart the lms, cms and workers, or 'all' to -restart all services. Note that this performs a 'docker-compose restart', so new images +restart all services. Note that this performs a 'docker compose restart', so new images may not be taken into account. It is useful for reloading settings, for instance. To fully stop the platform, use the 'reboot' command.""", ) @@ -302,8 +302,8 @@ def do() -> None: @click.command( short_help="Run a command in a new container", help=( - "Run a command in a new container. This is a wrapper around `docker-compose run`. Any option or argument passed" - " to this command will be forwarded to docker-compose. Thus, you may use `-v` or `-p` to mount volumes and" + "Run a command in a new container. This is a wrapper around `docker compose run`. Any option or argument passed" + " to this command will be forwarded to docker compose. Thus, you may use `-v` or `-p` to mount volumes and" " expose ports." ), context_settings={"ignore_unknown_options": True}, @@ -368,7 +368,7 @@ def copyfrom( @click.command( short_help="Run a command in a running container", help=( - "Run a command in a running container. This is a wrapper around `docker-compose exec`. Any option or argument" + "Run a command in a running container. This is a wrapper around `docker compose exec`. Any option or argument" " passed to this command will be forwarded to docker-compose. Thus, you may use `-e` to manually define" " environment variables." ), @@ -383,7 +383,7 @@ def execute(context: click.Context, args: list[str]) -> None: @click.command( short_help="View output from containers", - help="View output from containers. This is a wrapper around `docker-compose logs`.", + help="View output from containers. This is a wrapper around `docker compose logs`.", ) @click.option("-f", "--follow", is_flag=True, help="Follow log output") @click.option("--tail", type=int, help="Number of lines to show from each container") @@ -406,10 +406,10 @@ def status(context: click.Context) -> None: @click.command( - short_help="Direct interface to docker-compose.", + short_help="Direct interface to docker compose.", help=( - "Direct interface to docker-compose. This is a wrapper around `docker-compose`. Most commands, options and" - " arguments passed to this command will be forwarded as-is to docker-compose." + "Direct interface to docker compose. This is a wrapper around `docker compose`. Most commands, options and" + " arguments passed to this command will be forwarded as-is to docker compose." ), context_settings={"ignore_unknown_options": True}, name="dc", diff --git a/tutor/hooks/catalog.py b/tutor/hooks/catalog.py index e1eac6d..2f62810 100644 --- a/tutor/hooks/catalog.py +++ b/tutor/hooks/catalog.py @@ -50,7 +50,7 @@ class Actions: For more information about how actions work, check out the :py:class:`tutor.core.hooks.Action` API. """ - #: Triggered whenever a "docker-compose start", "up" or "restart" command is executed. + #: Triggered whenever a "docker compose start", "up" or "restart" command is executed. #: #: :parameter str root: project root. #: :parameter dict config: project configuration. diff --git a/tutor/templates/local/docker-compose.jobs.yml b/tutor/templates/local/docker-compose.jobs.yml index c70fa23..984e085 100644 --- a/tutor/templates/local/docker-compose.jobs.yml +++ b/tutor/templates/local/docker-compose.jobs.yml @@ -1,8 +1,8 @@ # Tutor provides the `tutor MODE do JOB ...` CLI as a consistent way to execute jobs -# across the dev, local, and k8s modes. To support jobs in the docker-compose modes +# across the dev, local, and k8s modes. To support jobs in the docker compose modes # (dev and local), we must define a `-job` variant service in which jobs could be run. -# When `tutor local do JOB ...` is invoked, we `docker-compose run` each of JOB's +# When `tutor local do JOB ...` is invoked, we `docker compose run` each of JOB's # tasks against the appropriate `-job` services, as defined here. # When `tutor dev do JOB ...` is invoked, we do the same, but also include any # compose overrides in ../dev/docker-compose.jobs.yml.