Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

2K
Visualizações
Docker-Compose postgres upgrade initdb: error: el directorio "/var/lib/postgresql/data" existe pero no está vacío

Instalé postgres 11 usando docker-compose. Quería actualizarlo a 12, pero aunque eliminé el contenedor y su volumen, el estado del contenedor dice "Reiniciando".

Aquí está mi archivo docker-compose

 version: '3.5' services: postgres: image: postgres:12 environment: POSTGRES_HOST_AUTH_METHOD: "trust" ports: - "5432" restart: always volumes: - /etc/postgresql/12/postgresql.conf:/var/lib/postgresql/data/postgresql.conf - db_data:/var/lib/postgresql/data volumes: db_data:

Sin embargo, no funciona y los registros tienen el siguiente problema

 2020-07-02T12:54:47.012973448Z The files belonging to this database system will be owned by user "postgres". 2020-07-02T12:54:47.013030445Z This user must also own the server process. 2020-07-02T12:54:47.013068962Z 2020-07-02T12:54:47.013222608Z The database cluster will be initialized with locale "en_US.utf8". 2020-07-02T12:54:47.013261425Z The default database encoding has accordingly been set to "UTF8". 2020-07-02T12:54:47.013281815Z The default text search configuration will be set to "english". 2020-07-02T12:54:47.013293326Z 2020-07-02T12:54:47.013303793Z Data page checksums are disabled. 2020-07-02T12:54:47.013313919Z 2020-07-02T12:54:47.013450079Z initdb: error: directory "/var/lib/postgresql/data" exists but is not empty 2020-07-02T12:54:47.013487706Z If you want to create a new database system, either remove or empty 2020-07-02T12:54:47.013501126Z the directory "/var/lib/postgresql/data" or run initdb 2020-07-02T12:54:47.013512379Z with an argument other than "/var/lib/postgresql/data".

¿Cómo podría eliminar o vaciar este /var/lib/postgresql/data cuando el contenedor se reinicia constantemente?

Gracias por adelantado

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Citando a @yosifkit de este número

El volumen debe estar vacío o una base de datos postgres ya inicializada válida con el archivo PG_VERSION allí para que se pueda omitir el inicio.

... Si hay archivos o carpetas allí como lost+found , es probable que no se inicialicen. Si hay archivos que desea mantener en el volumen (o sobre los que no tiene control), puede ajustar la variable de entorno PGDATA para que apunte a un subdirectorio allí como -e PGDATA=/var/lib/postgresql/data/db-files/ .

Así que agregué PGDATA a la sección de environment del archivo de composición para resolver el problema (observe el some_name al final):

 services: postgres: image: postgres:12 environment: PGDATA: /var/lib/postgresql/data/some_name/
over 4 years ago · Santiago Trujillo Relatório

0

Tengo este problema porque /var/lib/postgresql/data/postgresql.conf y /var/lib/postgresql/data se superponen en el contenedor acoplable en /var/lib/postgresql/ .

Un ejemplo de una configuración rota es:

 version: "3.8" services: db: image: "postgres:10" ports: - "5432:5432" volumes: - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf - ./pg-data:/var/lib/postgresql/data

Para evitar esto, le digo a PostgreSQL que busque su configuración en /etc/postgresql.conf para que los volúmenes superpuestos no ocurran así:

 version: "3.8" services: db: image: "postgres:10" command: ["postgres", "-c", "config_file=/etc/postgresql.conf"] ports: - "5432:5432" volumes: - ./postgresql.conf:/etc/postgresql.conf - ./pg-data:/var/lib/postgresql/data

Esto es similar a lo que sugiere pmsoltani , pero muevo la ubicación del archivo postgresql.conf en lugar del directorio de datos.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema hoy, lo solucioné eliminando el contenido del volumen db_data en su caso

 docker volume ls docker volume inspect db_data <-- will show you the mountpoint

Fui al directorio (punto de montaje) ej: /ruta/datos

 cp data data.backup cd data rm -R *

E iniciar servicios:

 docker-compose up -d
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda