Не получается установить коннект конта MySQL с сервисом Go
Всем привет! Столкнулся с проблемой, не выходит настроить подключение двух контейнеров внутри кластера compose. Вот сам yml:
version: '3.7' # NOTE: all your Dockerfile builds we need to carry in /build/<service_name> directory!!!
services:
nginx:
image: nginx # without a port naming it redirects to main page, afawc(as far as we can) also use 80 and 443 ports to connect
restart: always
ports:
- "8000:80"
deploy:
replicas: 2
auth:
build: ./auth
# 6987 basically
restart: always
depends_on:
db:
condition: service_healthy
nats:
condition: service_started
deploy:
replicas: 1
db:
build:
context: /db
args:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
ports:
- "3307:3306"
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Вот моя ссылка на подключение auth к db (вытаскивается из toml):
database_url = "admin:Erunda228@tcp(db:3307)/journal"
Наконец, кусок инициализации внутри кода сервиса:
// main.go
func init() {
flag.StringVar(&configPath, "config-path", "./auth.toml", "path to configs")
}
func main() {
flag.Parse()
config := auth.NewConfig()
_, err := toml.DecodeFile(configPath, config)
if err != nil {
log.Fatal(err)
}
log.Println("[INFO] => starting server using ", config.DatabaseURL, " URL: ")
if err := auth.Start(config); err != nil {
log.Fatal(err)
}
//time.Sleep(10*time.Second)
}
------------------------------
// myfileinitfuncs.go
func Start(config *Config) error {
db, err := NewDB(config.DatabaseURL)
if err != nil {
return err
}
defer db.Close()
store := sqlstore.New(db)
sessStore := sessions.NewCookieStore([]byte(config.SessionKey))
s := NewServer(store, sessStore)
return http.ListenAndServe(config.BindAddr, s)
}
func NewDB(databaseURL string) (*sql.DB, error) {
db, err := sql.Open("mysql", databaseURL)
if err != nil {
return nil, err
}
if err := db.Ping(); err != nil {
return nil, err
}
return db, nil
}
Помогите понять, что я делаю не так, меня уже даже GPT послал.
*Дополняю. Прошу прощения, не кинул саму ошибку.
2024-04-20 01:13:06 2024/04/19 22:13:06 [INFO] => starting server using admin:Erunda228@tcp(db:3307)/journal URL:
2024-04-20 01:13:06 2024/04/19 22:13:06 dial tcp 172.27.0.2:3307: connect: connection refused
И насчет наличия базы. После создания подгружаются все миграции, с помощью adminer проверял - всё работало.