Skip to content

Instantly share code, notes, and snippets.

@skseth
Last active May 16, 2022 07:36
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save skseth/7a331ff78b0eadcbcc81 to your computer and use it in GitHub Desktop.
Save skseth/7a331ff78b0eadcbcc81 to your computer and use it in GitHub Desktop.
Setup Docker, Postgres, Redis and NSQ on Mac

#Postgres

##Create Postgres Dockerfile

#create fresh postgres image  
docker build -t postgres .
#run postgresql, mapping port 5432 to 5432 of host
docker run -p 5432:5432 -d -P --name pg_test eg_postgresql
#start psql command line & test db
[skseth@INskseth dbs]$docker run --rm -t -i --link pg_test:pg eg_postgresql bash 
#postgres@36cad077c37b:/$ psql -h $PG_PORT_5432_TCP_ADDR -p $PG_PORT_5432_TCP_PORT -d docker -U docker --password
docker=# create table employee (Name char(20),Dept char(20),jobTitle char(20));
docker=# INSERT INTO employee VALUES ('Fred Flinstone','Quarry Worker','Rock Dig');

Now try : docker=# SELECT * from employee;

##You May need to grant rights to docker ALTER ROLE docker WITH CREATEDB; ALTER ROLE docker WITH CREATEROLE;

##You can install pgAdmin3 brew cask install pgAdmin3

##Also set port-forward 5432 from local VBoxManage controlvm boot2docker-vm natpf1 pg,tcp,,5432,,5432

#Browse just the data volumes of the postgres container pg_test docker run --rm --volumes-from pg_test -t -i busybox sh


Redis
-----

Create Redis Dockerfile

```Shell
#build image
docker build -t <your username>/redis .

#create container
docker run --name redis -p 6379:6379 -d <your username>/redis

#open a command prompt to test
docker run --link redis:db -i -t ubuntu:14.04 /bin/bash

##Also set port-forward 6379 from local VBoxManage controlvm boot2docker-vm natpf1 redis,tcp,,6379,,6379

##Install client to test brew install redis

Dockerfile for Postgres

From http://docs.docker.com/examples/postgresql_service/

FROM ubuntu
MAINTAINER SvenDowideit@docker.com

# Add the PostgreSQL PGP key to verify their Debian packages.
# It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8

# Add PostgreSQL's repository. It contains the most recent stable release
#     of PostgreSQL, ``9.3``.
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list

# Install ``python-software-properties``, ``software-properties-common`` and PostgreSQL 9.3
#  There are some warnings (in red) that show up during the build. You can hide
#  them by prefixing each apt-get statement with DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3

# Note: The official Debian and Ubuntu images automatically ``apt-get clean``
# after each ``apt-get``

# Run the rest of the commands as the ``postgres`` user created by the ``postgres-9.3`` package when it was ``apt-get installed``
USER postgres

# Create a PostgreSQL role named ``docker`` with ``docker`` as the password and
# then create a database `docker` owned by the ``docker`` role.
# Note: here we use ``&&\`` to run commands one after the other - the ``\``
#       allows the RUN command to span multiple lines.
RUN    /etc/init.d/postgresql start &&\
    psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\
    createdb -O docker docker

# Adjust PostgreSQL configuration so that remote connections to the
# database are possible. 
RUN echo "host all  all    0.0.0.0/0  md5" >> /etc/postgresql/9.3/main/pg_hba.conf

# And add ``listen_addresses`` to ``/etc/postgresql/9.3/main/postgresql.conf``
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf

# Expose the PostgreSQL port
EXPOSE 5432

# Add VOLUMEs to allow backup of config, logs and databases
VOLUME  ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]

# Set the default command to run when starting the container
CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]

Dockerfile for Redis

from https://docs.docker.com/examples/running_redis_service/ with changes

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]
@ELGUMOS1
Copy link

ELGUMOS1 commented Dec 6, 2019

does this work on mac or ubuntu?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment