Docker Compose Repository



Docker Compose is a Python program that lets you easily deploy multiple containers on a server.

As you start exploring Docker, you'll learn that often to run a certain web-app, you'll need to run various services (like database, web-server etc) in different containers.

The following article discusses how to use Compose by using two examples that Docker has curated and maintained in the awesome-compose Git repository. Start the Podman system service I am currently using Fedora 33. Install using Docker Compose. Use this information to quickly start up Community Edition using Docker Compose. Note: While Docker Compose is often used for production deployments, the Docker Compose file provided here is recommended for development and test environments only. Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format.A Compose file is used to define how the one or more containers that make up your application are configured.

Deploying multiple containers is a lot easier with Docker Compose.

In this tutorial, you'll learn two ways of installing Docker Compose on Ubuntu:

  • Installing Docker Compose from Ubuntu's repository: Easier method but may not have the latest version of docker compose
  • Installing the latest Docker Compose using PIP: Gets you the newer docker compose version

Keep in mind that to use Docker Compose, you must have Docker installed on Ubuntu.

Install Docker Compose from Ubuntu's repository

This is the easiest and recommend method. Unless you need the latest Docker Compose version for some specific reasons, you can manage very well with the docker compose version provides by Ubuntu.

Docker Compose is available in the universe repository of Ubuntu 20.04 and 18.04 so make sure to enable it first:

You probably won't need it but no harm in updating the local cache:

Now you can install Docker Compose in Ubuntu using this command:

You can check that Docker Compose is installed successfully by checking its version:

It should show an output like this:

Install the latest Docker Compose on Ubuntu using PIP

PIP stands for 'PIP Installs Package'. It's a command-line based package manager for installing Python applications.

Since Docker Compose is basically a Python program, you can use PIP to install it.

But before you do that, you need to install PIP on Ubuntu first.

Enable the universe repository first.

Docker-compose Repository Xenial

Install PIP now:

Now that you have PIP installed use it to install Docker Compose for all users on your Linux system:

Check the Docker Compose version to ensure that it is installed successfully:

Docker Compose Repository Command

Install

You can see that Docker Compose installed via PIP is more recent version.

I hope you were able to successfully install Docker Compose on Ubuntu with this tutorial. Questions and suggestions are welcome.

Docker Compose Repository Tutorial

Become a Member for FREE
Become a member to get the regular Linux newsletter (2-4 times a month) and access member-only contents.

Join the conversation.

Use this information to quickly start up Community Edition using Docker Compose.

Docker Compose Repository

Note: While Docker Compose is often used for production deployments, the Docker Compose file provided here is recommended for development and test environments only. Customers are expected to adapt this file to their own requirements, if they intend to use Docker Compose to deploy a production environment.

To deploy Community Edition using Docker Compose`, download and install Docker, then follow the steps below. Make sure that you’ve reviewed the prerequisites before continuing.

  1. Clone the project locally, change directory to the project folder, and switch to the release branch:

    Note: Make sure that exposed ports are open on your host computer. Check the docker-compose.yml file to determine the exposed ports - refer to the host:container port definitions. You’ll see they include 5432, 8080, 8083 and others.

  2. Save the docker-compose.yml file in a local folder.

    For example, you can create a folder docker-compose.

  3. Change directory to the location of your docker-compose.yml file.

  4. Deploy Community Edition, including the repository, Share, Postgres database, Search Services, etc.:

    This downloads the images, fetches all the dependencies, creates each container, and then starts the system:

    Note that the name of each container begins with the folder name you created in step 2.

    As an alternative, you can also start the containers in the background by running docker-compose up -d.

  5. Wait for the logs to complete, showing messages:

    See Troubleshooting if you encounter errors whilst the system is starting up.

  6. Open your browser and check everything starts up correctly:

    ServiceEndpoint
    Administration and REST APIshttp://localhost:8080/alfresco
    Sharehttp://localhost:8080/share
    Search Services administrationhttp://localhost:8083/solr

    If Docker is running on your local machine, the IP address will be just localhost.

    If you’re using the Docker Toolbox, run the following command to find the IP address:

  7. Log in as the admin user. Enter the default administrator password admin.

Check system start up

Use this information to verify that the system started correctly, and to clean up the deployment.

Docker
  1. Open a new terminal window.

  2. Change directory to the docker-compose folder that you created in the deployment steps.

  3. Verify that all the services started correctly.

    1. List the images and additional details:

      You should see a list of the services defined in your docker-compose.yaml file:

    2. List the running containers:

      You should see a list of the services defined in the docker-compose.yaml file.

    3. View the log files for each service <service-name>, or container <container-name>:

      For example, to check the logs for Share, run any of the following commands:

      You can add an optional parameter --tail=25 before <container-name> to display the last 25 lines of the logs for the selected container.

      Check for a success message:

    Once you’ve tested the services, you can clean up the deployment by stopping the running services.

  4. Stop the session by using CONTROL+C in the same window as the running services:

  5. Alternatively, you can open a new terminal window, change directory to the docker-compose folder, and run:

    This stops the running services, as shown in the previous example, and removes them from memory:

  6. You can use a few more commands to explore the services when they’re running. Change directory to docker-compose before running these:

    1. Stop all the running containers:

    2. Restart the containers (after using the stop command):

    3. Starts the containers that were started with docker-compose up:

    4. Stop all running containers, and remove them and the network:

      The --rmi all option also removes the images created by docker-compose up, and the images used by any service. You can use this, for example, if any containers fail and you need to remove them:

See the Docker documentation for more on using Docker.

Deployment project in GitHub

See the Alfresco/acs-deployment GitHub project for more details.

  • In this project, you’ll find several Docker Compose files. The default docker-compose.yml file contains the latest work-in-progress deployment scripts, and installs the latest development version of Content Services.
  • To deploy a specific released version of Content Services, several major.minor Docker Compose files are provided in the docker-compose folder of the project.
  • To modify your development environment, for example to change or mount files in the existing images, you’ll have to create new custom Docker images (recommended approach). The same approach applies if you want to install AMP files into the repository and Share images. See the Customization guidelines for more.

Using the Community Compose file in this project deploys the following system:

Xenial

Cleanup

To bring the system down and cleanup the containers run the following command:

Troubleshooting

  1. If you have issues running docker-compose up after deleting a previous Docker Compose cluster, try replacing step 4 in the initial Docker Compose instructions with:

    Note: Make sure that the docker-compose up part of the command uses the format you chose in step 4.

  2. Stop the session by using CONTROL+C.

  3. Remove the containers (using the --rmi all option):

  4. Try allocating more memory resources, as advised in docker-compose.yml.

    For example, in Docker, change the memory setting in Preferences (or Settings) Resources > Advanced > Memory to at least 8GB. Make sure you restart Docker and wait for the process to finish before continuing.

    Go back to step 4 in the initial Docker Compose instructions to start the deployment again.

Docker Compose Repository Centos

Note: Keep in mind that 8GB is much lower than the required minimum, and may need to be adapted for your environment. You’ll need a machine with at least 13GB of memory to distribute among the Docker containers.