発生している問題・エラーメッセージ
Dockerfile内でgo getを行った時に名前解決できないというようなエラーが出ています.
普通でしたら,resolve.confを書き換えれば対処できるのですが,dockerコンテナを起動することができず,その方法が使えません.
Step 5/7 : RUN go get -u github.com/go-sql-driver/mysql github.com/gorilla/sessions&& chmod +x /wait&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ---> Running in 719adcb55f97 # cd .; git clone -- https://github.com/go-sql-driver/mysql /go/src/github.com/go-sql-driver/mysql Cloning into '/go/src/github.com/go-sql-driver/mysql'... fatal: unable to access 'https://github.com/go-sql-driver/mysql/': Could not resolve host: github.com package github.com/go-sql-driver/mysql: exit status 128 # cd .; git clone -- https://github.com/gorilla/sessions /go/src/github.com/gorilla/sessions Cloning into '/go/src/github.com/gorilla/sessions'... fatal: unable to access 'https://github.com/gorilla/sessions/': Could not resolve host: github.com package github.com/gorilla/sessions: exit status 128 ERROR: Service 'go_app' failed to build: The command '/bin/sh -c go get -u github.com/go-sql-driver/mysql github.com/gorilla/sessions&& chmod +x /wait&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime' returned a non-zero code: 1
補足情報(FW/ツールのバージョンなど)
ovirtでCentOS8を動かしています.
Docker version 19.03.11, build 42e35e61f3
追記
Dockerfile
1FROM golang 2WORKDIR /app 3 4EXPOSE 80 5 6# waitライブラリの追加 7ADD /wait /wait 8 9RUN go get -u github.com/go-sql-driver/mysql\ 10 github.com/gorilla/sessions&&\ 11 chmod +x /wait&&\ 12 ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime 13 14 15ADD ./app /app 16CMD [ "go","run","main.go" ]
docker
1version: "3" 2services: 3 mysql: 4 build: ./mysql 5 container_name: mysql 6 volumes: 7 - ./mysql/db:/docker-entrypoint-initdb.d 8 environment: 9 MYSQL_ROOT_PASSWORD: hogehoge 10 MYSQL_DATABASE: hoge_db 11 MYSQL_USER: hoge 12 MYSQL_PASSWORD: hogehoge 13 networks: 14 - hoge_network 15 ports: 16 - "33060:3306" 17 18 go_app: 19 build: ./go 20 container_name: go_app 21 networks: 22 - hoge_network 23 ports: 24 - "8080:80" 25 depends_on: 26 - mysql 27 environment: 28 WAIT_HOSTS: mysql 29 30networks: 31 hoge_network: 32 external: true 33
実行時のコマンドはdocker-compose build
でした
Dockerfile全体とdocker-compose.yml、実行したときのコマンドもあると、より回答しやすいと思います
ご指摘ありがとうございます.追記いたしました.
Goのライブラリ管理はGo Moduleを用いていますか?(go.modファイルを使っていますか?)
Dockerfileから考えると、使っていないのですね。
使用しておりません.
ネットワークまわりが怪しいのですが、別ネットワークである production_networ を使わずに docker-compose build するとビルドできたりしますか?
すみません,修正漏れでした.
正しくは,そこもhoge_networkです.
全て同じネットワークを使用しています.
どちらかというとすでに構築されている external なネットワークを使ってビルドしていますが、このネットワークを使わずに docker-compose build するとビルドできるのは?と思った次第です。
hoge_network を使わずにビルドできるのであれば、hoge_network が原因にように思えるので hoge_network を構築したときにどのような経路を通じてインターネットにアクセスできるようにしているのか気になります。
サーバーが学校にあるため,すぐには確認できませんが今度試してみますね.
ちなみに,同じファイルを使用してMacOS(Catalina)で`docker-compose build`を行ったところ,問題なく動作しました.
回答1件
あなたの回答
tips
プレビュー