0
프록시가없는 시스템에서 main.go, Dockerfile 및 docker-compose.yml과 같이 작성했으며 docker-compose up
이 성공적으로 완료되었습니다.golang-onbuild로 도커 작성이 프록시 뒤에서 다운로드되지 않습니다.
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