DockerFileとdocker-composeを使ってGo(webフレームワーク)とMysqlを使ったプログラムを起動したいと考えています。
docker-compose up をしたところ以下のエラーが出てアプリコンテナから接続できず、起動しない状態です。
api-app | 23:41:20 runner | Running...
api-app | 23:41:20 main | --------------------
api-app | 23:41:20 main | Waiting (loop 2)...
api-app | 23:41:20 app | {"time":"2020-09-02T23:41:20.1061887Z","level":"FATAL","prefix":"echo","file":"main.go","line":"51","message":"dial tcp 192.168.16.2:3333: connect: connection refused"}
macを使用しています。
docker exec -it api-db mysql -u root -pでログインは確認できます。
ご教授よろしくお願いいたします。
main.goの51行目は以下の箇所です。
if err := db.Ping(); err != nil {
e.Logger.Fatal(err)
go
1func connectDB() *sqlx.DB { 2 dsn := "root:password@tcp(api-db:3333)/database" 3 db, err := sqlx.Open("mysql", dsn) 4 if err != nil { 5 e.Logger.Fatal(err) 6 } 7 if err := db.Ping(); err != nil { 8 e.Logger.Fatal(err) 9 } 10 log.Println("db connection succeeded") 11 return db 12}
DockerFile
1FROM golang:latest 2RUN mkdir api 3WORKDIR /api 4 5RUN apt-get update \ 6 && apt-get install -y mariadb-client 7 8 9COPY . . 10 11 12RUN CGO_ENABLED=0 go build -o main main.go 13 14RUN go get github.com/pilu/fresh 15 16CMD ["fresh"]
docker-compose.yml
docker
1version: "3" 2services: 3 app: 4 build: 5 context: . 6 dockerfile: ./docker/app/Dockerfile 7 container_name: api-app 8 volumes: 9 - .:/go/src/api 10 - ./:/go/src/hot_reload_docker 11 ports: 12 - "80:8080" 13 depends_on: 14 - mysql 15 restart: always 16 17 mysql: 18 image: mysql:5.7 19 restart: always 20 container_name: gapi-db 21 environment: 22 MYSQL_USER: root 23 MYSQL_ROOT_PASSWORD: password 24 MYSQL_PASSWORD: password 25 MYSQL_DATABASE: database 26 hostname: mysql 27 ports: 28 - "3333:3306" 29 volumes: 30 - ./docker/db/conf.d:/etc/mysql/conf.d 31 - ./log/mysql:/var/log/mysql 32 - ./db/data:/var/lib/mysql 33 - ./db/initdb.d:/docker-entrypoint-initdb.d 34
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/03 02:14
2020/09/03 02:27
退会済みユーザー
2020/09/03 02:40