简体   繁体   中英

How to recreate Docker container?

I'm new to docker and I'm using docker compose. For some reason my postgres container is now broken

I'm trying this command docker-compose up --no-deps --build db

And it's returning me this:

MacBook-Pro-de-Javier:goxo.api javier$ docker-compose up --no-deps --build db
Recreating testapi_db_1
Attaching to testapi_db_1
db_1   | LOG:  database system was shut down at 2017-04-20 17:19:05 UTC
db_1   | LOG:  MultiXact member wraparound protections are now enabled
db_1   | LOG:  database system is ready to accept connections
db_1   | LOG:  autovacuum launcher started

Whenever I try to connect (with the same connection arguemnts than before) I get this:

^[[Adb_1   | FATAL:  database "test" does not exist

This is part of my docker-compose.yml

version: "3"
services:
  db:
    image: postgres
    ports:
      - "3700:5432"
    environment:
      POSTGRES_HOST: "127.0.0.1"
      POSTGRES_DB: "test"
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: "postgres1"
    tmpfs:
      - /tmp
      - /var/run/postgresql
    volumes:
      - db:/var/lib/postgresql/data
      - ./config/postgres-initdb.sh:/docker-entrypoint-initdb.d/initdb.sh

Any ideas on how can I recreate the docker image to be how it was before? It was working as it was created the first time

Thanks

EDIT 1: If I run docker-compose build && docker-compose up

Terminal throws this:

db uses an image, skipping

EDIT 2: This command does not create database again neither:

docker-compose up --force-recreate --abort-on-container-exit --build db

have you tried to rebuild your single postgres container?

docker build -t <postgrescontainer> 

or with docker-compose:

docker-compose up --build

to recreate the images and not use the old 'used' ones.

You can have a look at the images on your system with

docker images

which should show your image, and then

docker history --no-trunc your_image

should show the commands used for the creation of the image

This my be insufficient, as when you see something like

ADD * /opt

you do not know exactly which files were copied, and what thoses files contained

There is also dockerfile-from-image

https://github.com/CenturyLinkLabs/dockerfile-from-image

which seems to have a bug recently (I do not know if it is fixed)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM