Переименуйте том в docker compose, с docker, полученным из postgres - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть docker -композиция

version: '3.7'

services:

  app-db:
    build:
      context: ./
      dockerfile: Dockerfile-pg
    image: app-pg:1.0.0
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: app
    volumes:
       - ./docker-entrypoint-initdb.d/init-user-db.sh:/docker-entrypoint-initdb.d/init-user-db.sh
       - v-app-pgdata:/var/lib/postgresql
       - v-app-pglog:/data/var/log/postgresql
       - v-app-pgconf:/etc/postgresql


    
  app-main:
    build: 
      context: ./
      dockerfile: Dockerfile-tar-cp
    image: app-main:1.0.0
    restart: always
    ports:
      - 80:80
volumes:
  v-app-pgdata:
    name: v-app-pgdata
  v-app-pglog:
    name: v-app-pglog
  v-app-pgconf:
    name: v-app-pgconf

, поэтому контейнер приложения и производный контейнер postgres:

#docker build -t app-pg:1.0.0 -f Dockerfile-pg .
#docker run -d --name appC-pg -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgres app-pg:1.0.0

FROM postgres:12.1

MAINTAINER xxx

#ARG A_DB_USER='postgres'
#ARG A_DB_PASS='postgres'
ARG A_DB_NAME='app'
ARG A_TZ='Europe/Zurich'

#ENV DB_USER=${A_DB_USER}
#ENV DB_PASS=${A_DB_PASS}
ENV DB_NAME=${A_DB_NAME}
ENV TZ=${A_TZ}

# Adjusting Timezone in the system
RUN echo $TZ > /etc/timezone && \
    apt-get update && apt-get install -y tzdata && \
    rm /etc/localtime && \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
    dpkg-reconfigure -f noninteractive tzdata && \
    apt-get clean

# install postgis
RUN apt-get update && \
    apt-get install -y postgis && \
    apt-get clean

USER postgres

#Add password "postgres" to user postgres, create db, add .sql
#RUN /etc/init.d/postgresql start && \
#    psql --command "ALTER USER ${DB_USER} WITH PASSWORD '${DB_PASS}'; SET TIME ZONE '${TZ}';" && \
#    createdb -O ${DB_USER} ${DB_NAME} -E UTF8 && \
#    psql -d ${DB_NAME} -c 'CREATE EXTENSION postgis'

EXPOSE 5432

Моя проблема в том, что postgres по умолчанию dockerfile имеет следующую строку:

VOLUME /var/lib/postgresql/data

Так что даже если я создаю именованные тома с той же папкой, мой docker -компонент создает 4, а не 3 тома, один из которых не назван из-за этой строки. Как можно решить эту проблему?

...