プロキシのないマシンでは、main.go、Dockerfile、docker-compose.ymlのように書いてあり、docker-compose up
が正常に完了しました。golang-onbuildでDocker-composeを実行すると、プロキシの後ろでダウンロードに失敗する
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
"log"
"net/http"
)
func main() {
redi, err := redis.Dial("tcp", "redis:6379")
/// SNIP ///
log.Fatal(http.ListenAndServe(":5000", nil))
}
Dockerfile
# Dockerfile
FROM golang:onbuild
EXPOSE 5000
ドッキングウィンドウ-compose.yml
# docker-compose.yml
version: '2'
services:
web:
build: .
ports:
- 5000:5000
depends_on:
- redis
redis:
image: redis
しかし、(もちろん)彼らは、プロキシの背後にあるマシン上で実行しないでください。 Dockerfileとdocker-compose.ymlの両方を変更しました。
Dockerfile
# Dockerfile
FROM golang:onbuild
ENV HTTP_PROXY http://proxy.mycompany.com:10080
ENV HTTPS_PROXY http://proxy.mycompany.com:10080
ENV http_proxy http://proxy.mycompany.com:10080
ENV https_proxy http://proxy.mycompany.com:10080
EXPOSE 5000
ドッキングウィンドウ-compose.yml
# docker-compose.yml
version: '2'
services:
web:
build: .
ports:
- 5000:5000
volumes:
- ".:/redis-go-sample"
depends_on:
- redis
environment:
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTP_PROXY}
- http_proxy=${HTTP_PROXY}
- https_proxy=${HTTP_PROXY}
redis:
image: redis
そして結果は、最後のエラーメッセージが言うように
Building web
Step 1/6 : FROM golang:onbuild
# Executing 3 build triggers...
Step 1/1 : COPY . /go/src/app
---> Using cache
Step 1/1 : RUN go-wrapper download
---> Running in 8e311bec859c
+ exec go get -v -d
github.com/garyburd/redigo (download)
# cd .; git clone https://github.com/garyburd/redigo /go/src/github.com/garyburd/redigo
Cloning into '/go/src/github.com/garyburd/redigo'...
fatal: unable to access 'https://github.com/garyburd/redigo/': Could not resolve host: github.com
package github.com/garyburd/redigo/redis: exit status 128
ERROR: Service 'web' failed to build: The command '/bin/sh -c go-wrapper download' returned a non-zero code: 1
、私は問題がプロキシENVのgolang-onbuildまたは行くラッパー取り扱いミスによって引き起こされていると思います。
どうすればこの問題を解決できますか?
ありがとうございました。私はそれを試しましたが、ドッカーは "args:"行に "ERROR:yaml.scanner.ScannerError:マッピング値が許可されていません"と言っていました。あなたは何か考えていますか? – HirofumiTamori
@HirofumiTamori更新ファイル。どうやら、コンテキストは別の行にある必要があります – yamenk
また、args:値を " - HTTP_PROXY = http:// ..."スタイルに変更する必要があります。しかし、それはまだ動作しません。現時点では、「proxy.mycompany.comを解決できませんでした」のようにエラーメッセージが変更されました。 DNS関連の値をコンテナに渡す方法を教えてください。 – HirofumiTamori