Immer wenn ich den Docker-Container-Dienst starte, erhalte ich die Fehlermeldung failed to initialize
.
version: '3' services: app: container_name: api build: context: . dockerfile: local.dockerfile ports: - "9090:9090" - "40000:40000" security_opt: - "seccomp:unconfined" cap_add: - sys_ptrace restart: on-failure environment: port: 9090 db_conn: "postgres://admin:pass@db:5432/test?sslmode=disable" volumes: - .:/app depends_on: - db links: - db db: image: postgres container_name: db ports: - "5432:5432" environment: postgres_user: "admin" postgres_password: "pass" postgres_db: "test" tz: "utc" pgtz: "utc" volumes: - ./tmp:/var/lib/postgresql/data
Ich verwende air
进行实时重新加载,请找到air.toml
Dateien
root="." tmp_dir="tmp" [build] cmd="go build -gcflags=\"all=-N -l\" -o ./bin/main ." bin="/app/bin" full_bin="/app/bin/main" log="air_errors.log" include_ext=["go", "yaml"] exclude_dir=["tmp"] delay=1000 [log] time=true [misc] clean_on_exit=true func main() { Instance, err = gorm.Open(postgres.Open(conn), &gorm.Config{ Logger: logger.New( log.New(os.Stdout, "", log.LstdFlags), logger.Config{ LogLevel: logger.Info, Colorful: true, }), }) if err != nil { panic("Cannot connect to DB" + err.Error()) } }
Wenn Sie den Code erneut speichern und die App live neu laden, wird die Verbindung hergestellt
Sie müssen warten, bis die postgres
Datenbankinitialisierung abgeschlossen ist.
Ansicht https://docs. docker.com/compose/compose-file/compose-file-v3/#healthcheck
fürdb
服务添加healthcheck
healthcheck: test: ["cmd-shell", "pg_isready"] interval: 10s timeout: 5s retries: 5
und ändern depend_on
wie folgt
depends_on: db: condition: service_healthy
Das obige ist der detaillierte Inhalt vonFehler beim Initialisieren der Datenbank mit Fehler. Es konnte keine Verbindung zu „host=db user=database=' hergestellt werden: DFÜ-Fehler (DFÜ-TCP xxxx: Verbindung: Verbindung verweigert). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!