我正在开发 Flutter Web 应用程序,但在运行测试时遇到问题。
Flutter 1.7.8+hotfix.4 • channel stable • git@github.com:flutter/flutter.git
Framework • revision 20e59316b8 (9 weeks ago) • 2019-07-18 20:04:33 -0700
Engine • revision fee001c93f
Tools • Dart 2.4.0
Run Code Online (Sandbox Code Playgroud)
这是 pubspec.yaml:
name: web_flutter
description: An app built using Flutter for web
environment:
# You must be using Flutter >=1.5.0 or Dart >=2.3.0
sdk: '>=2.3.0-dev.0.1 <3.0.0'
dependencies:
flutter_web: any
flutter_web_ui: any
provider: any
rxdart: ^0.22.0
http: ^0.12.0+2
json_annotation: ^2.4.0
intl: 0.15.8
dev_dependencies:
build_runner: ^1.4.0
build_web_compilers: ^2.0.0
pedantic: ^1.0.0
json_serializable: ^3.0.0 …Run Code Online (Sandbox Code Playgroud) 我是 Docker 的新手。这个项目只是为了我自己的理解。很可能我使用了不正确的术语和/或比我想象的更困惑。感激地接受更正。
我使用了两个 docker 镜像:官方 postgres 镜像和我自己的 Go 应用程序和 Dockerfile。使用docker-compose up我得到connection refused错误。
我认为可能存在两个不同的问题:
一,当应用程序尝试连接时,数据库没有运行。
第二,该应用程序只是使用了无效的 IP。
我有应用程序代码应该让数据库有时间启动以解决第一个潜在问题(请参阅下面的代码)。从错误消息来看,我认为我什至没有走那么远。
我有两个服务:db-access(即 Go 应用程序)和 postgres-db。
我曾尝试在应用程序连接字符串中使用这些主机名:
"本地主机",
“postgres-db”(因为它在 docker-compose.yml 中命名),
“0.0.0.0”。
使用postgres-db作为主机名:
应用程序容器正在尝试:拨打 tcp 172.22.0.2:5432。
Postgres 说:侦听 IPv4 地址“0.0.0.0”,端口 5432。
在docker-compose.yml我曾尝试使用这些语句:
depends_on:
- postgres-db
Run Code Online (Sandbox Code Playgroud)
和
links:
- postgres-db
Run Code Online (Sandbox Code Playgroud)
我曾尝试颠倒 docker-compose.yml 中服务的顺序,但它们似乎以相同的顺序启动。
当我分别运行 postgres 容器和 Go 应用程序时,我得到了预期的行为。要单独运行它们,我正在使用这些命令:
docker run --rm --name postgres-db -e POSTGRES_PASSWORD=docker -d -p 5432:5432 -v /Users/ForeignFood/Development/go/src/github.com/skillitzimberg/docker/volumes/postgres:/var/lib/postgresql/data postgres
Run Code Online (Sandbox Code Playgroud)
其次是
go run basicapi
我也可以运行docker-compose …