Step 1: Install Docker and Docker Compose
Make sure you have Docker and Docker Compose installed on your machine. If you don't, you can download and install them from the Docker website.
Step 2: Create a new directory
Create a new directory for your project and navigate to it in your terminal.
$ mkdir myproject
$ cd myproject
Step 3: Create a new docker-compose.yml file
Create a new file called docker-compose.yml in your project directory.
$ touch docker-compose.yml
Step 4: Define services in the docker-compose.yml file
Add the following code to the docker-compose.yml file to define the services for PostgreSQL and RabbitMQ.
version: '3'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydatabase
rabbitmq:
image: rabbitmq
restart: always
ports:
# AMQP protocol port
- "5672:5672"
# HTTP management UI
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: myuser
RABBITMQ_DEFAULT_PASS: mypassword
In the above code, we define two services: db for PostgreSQL and rabbitmq for RabbitMQ. We use the official Docker images for both services, and we set some environment variables to configure them. You can change the values of these variables to suit your needs.
Step 5: Run the services with Docker Compose
Save the docker-compose.yml file and run the services with Docker Compose.
$ docker-compose up -d
The -d flag runs the services in the background. You should see output similar to the following:
Creating network "myproject_default" with the default driver
Creating myproject_db_1 ... done
Creating myproject_rabbitmq_1 ... done
Step 6: Verify the services
You can now verify that the services are running by checking the logs or connecting to them. For example, to connect to PostgreSQL:
$ docker exec -it myproject_db_1 psql -U myuser mydatabase
And to connect to RabbitMQ:
$ docker exec -it myproject_rabbitmq_1 rabbitmqctl list_users
That's it! You now have a docker-compose.yml file for PostgreSQL and RabbitMQ. You can add more services to the file as needed, and run them all with a single command using Docker Compose.
Top comments (0)