У меня есть такой докер

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest

работает на сервере

И у меня есть приложение golang, упакованное докером, работающее на том же сервере

func main() {
    db, _ := sql.Open("postgres", "postgres://postgres:@192.168.99.100:5432/postgres?sslmode=disable")

    http.HandleFunc("/test", handler)
    http.ListenAndServe(":8080", nil)
}

Выше работает в моем локальном, не работает в AWS, потому что IP-адрес не является правильным.

Так как я использую Mac, мне нужно использовать док-машину ip для подключения к docker postgres db, но в aws я не

Какой хороший способ настроить это?

1 ответ1

0

Вам необходимо сопоставить порт вашего докера с портом вашего хоста. Таким образом, вы должны добавить следующее:

-p 5432:5432

Ваша команда должна выглядеть так:

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .