Bonjour,

J'ai installé PostgreSQL 9.3 dans un container docker (créé avec docker-compose au démarrage de la machine) Et j'ai quelques difficultés :
  1. Je n'arrive pas à faire en sorte de garder les données (redémarre la machine ou fait 'docker-compose down && docker-compose up -d' les tables et données que j'ai créé disparaissent)
  2. Je défini des variable d'environnement dans docker-compose.yml pour créer un utilisateur et un DB, mais ça ne marche pas, la seule DB qui est créée est celle contenu dans le Dockerfile
  3. Si je crée un volume pour les fichiers de conf, PostgreSQL m'affiche l'erreur ci-dessous

postgres cannot access the server configuration file "/etc/postgresql/9.3/main/postgresql.conf": No such file or directory
Dockefile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
FROM ubuntu:16.04
MAINTAINER Test test <test@example.fr>
 
# Add the PostgreSQL PGP key and repo + install
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list
RUN apt-get update && apt-get -y -q install python-software-properties software-properties-common postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
 
# POSTGRE CONFIG
USER postgres
RUN /etc/init.d/postgresql start &&\
    psql --command "CREATE USER test WITH SUPERUSER PASSWORD 'test';" &&\
    createdb -O test test
 
# CONFIG
USER root
RUN echo "host all  all    0.0.0.0/0  md5" >> /etc/postgresql/9.3/main/pg_hba.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
RUN mkdir /home/scripts
VOLUME  ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
 
# Set the default command to run when starting the container
USER postgres
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"]
docker-compose.yml:
Code YML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# je suppose que c'est de la version 1 car aucune version n'est précisée dans le fichier
db-postgresql:
    restart: always
    image: Firlfire/postgresql:9.3
    ports:
        - 8003:5432
    volumes:
        - ./db/postgre/data:/var/lib/postgresql/data
        #- ./db/postgre/conf:/etc/postgresql    
        #- ./db/postgre/log:/var/log/postgresql 
        - ./db/postgre/scripts:/home/scripts
    environment:
        - DEBUG=false
        - POSTGRES_USER=Test
        - POSTGRES_PASSWORD=testpass
        - POSTGRES_DB=test