DEV Community

abbazs
abbazs

Posted on

4 3 1

How to setup a postgres and pgadmin to be used at development and testing of a application using docker-compose?

Using docker compose we can achieve this. In the following docker-compose code we are binding the local folder to the folder in the docker for data persistence.

Copy the code to a file named docker-compose.yml and run the command docker-compose -f docker-compose.yml up

version: "3.5"

services:
  postgres:
    container_name: postgres_container
    image: postgres
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
      POSTGRES_DB: ${POSTGRES_DB}
      PGDATA: /data/postgres
    volumes:
      - ./db_data:/data/postgres
    ports:
      - "5432:5432"
    networks:
      - postgres
    restart: unless-stopped

  pgadmin:
    container_name: pgadmin_container
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
      PGADMIN_CONFIG_SERVER_MODE: "False"
    volumes:
      # The local folder owner and group must be set to 5050
      # for the volume to work. Otherwise pgadmin is not able to
      # write to the local folder
      # sudo chown -R 5050:5050 pgadmin_data
      - ./pgadmin_data:/var/lib/pgadmin
    ports:
      - "${PGADMIN_PORT:-5050}:80"
    networks:
      - postgres
    restart: unless-stopped

networks:
  postgres:
    driver: bridge
Enter fullscreen mode Exit fullscreen mode

Postgres on Neon - Get the Free Plan

No credit card required. The database you love, on a serverless platform designed to help you build faster.

Get Postgres on Neon

Top comments (1)

Collapse
 
gugaguichard profile image
Gustavo (Guga) Guichard

Hey Abbaz, great guide! If you're looking for a more streamlined way to manage PostgreSQL databases, check out Flashboard. I’m one of the creators, and it offers a web-based UI that simplifies PostgreSQL management without additional setup like Docker. Would love to hear your thoughts!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs