내가 내 고정 표시기 컨테이너를 구축 할 때 내 시도는 GPG 키를받을 실패 할 수 있다는 점에서 문제가있는 비난. 내가 제공하는 명령은 명령 행에서 실행될 때 올바르게 작동합니다.gpgp 키 요청 dockerfile에 실패하지만
- 방화벽이 있습니다. 이에 대한 프록시 설정이 아래와 같습니다.
- 주최자 : CentOS 7.4; 프록시는 계정이 사용 설정됩니다에 대한 고정 표시기 버전 17.09.0-CE, afdb6d4
- 없음 환경 변수를 구축합니다.
/etc/systemd/system/docker.service.d/http-proxy.conf
에서 :
#/bin/bash
docker build -t hgk/test-container .
:
[Service]
Environment="HTTP_PROXY=http://<corporate proxy>/" "HTTPS_PROXY="<corporate proxy>/" "NO_PROXY=localhost,127.0.0.1,.domain.local,.corp"
내가 이미지를 구축하기 위해
build.sh
쉘 스크립트를 사용
FROM openjdk:8
ARG KEYSERV=hkp://p80.pool.sks-keyservers.net:80
ARG THEPROXY=<my corporate proxy>
# grab gosu for easy step-down from root
# (see docker-sonarqube pull request #115)
RUN set -x \
&& wget -e https_proxy=$THEPROXY -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.10/gosu-$(dpkg --print-architecture)" \
&& wget -e https_proxy=$THEPROXY-O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.10/gosu-$(dpkg --print-architecture).asc" \
&& export GNUPGHOME="$(mktemp -d)" \
&& gpg --version \
&& gpg -vv --keyserver $KEYSERV --keyserver-options http-proxy=$THEPROXY --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
&& gpg --list-keys \
&& gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
&& rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
&& chmod +x /usr/local/bin/gosu \
&& gosu nobody true
두 wget 명령이 올바르게 작동하고 파일을 검색합니다. 밖으로 첫 번째 GPG 명령은 결국 시간 :
+ mktemp -d
+ export GNUPGHOME=/tmp/tmp.LJ1EVFQmpO
+ gpg --version
gpg (GnuPG) 2.1.18
libgcrypt 1.7.6-beta
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /tmp/tmp.LJlEVFQmpO
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
+ gpg -vv --keyserver hkp://p80.pool.sks-keyservers.net:80 --keyserver-options http-proxy=<corp proxy> --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
gpg: keybox '/tmp/tmp.LJlEVFQmpO/pubring.kbx' created
gpg: no running Dirmngr - starting '/usr/bin/dirmngr'
gpg: waiting for the dirmngr to come up ... (5s)
gpg: connection to the dirmngr established
[[I am hung here - It just waits for ... something? I'll update the question if anything prints after this]]
나는 우리가 과거에 거기에 도착 있는지 확인하기 위해 Dockerfile에 gpg --list-keys
명령을 넣어. 내가 명령 줄을 통해 실행할 경우, 성공적 키 검색 : 나는 SKS-keyservers 다른 시도했습니다
[[email protected] foo]# printenv | grep proxy
[[email protected] foo]# gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --
keyserver-options http-proxy=<corp proxy> --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key BF357DD4 from hkp server p80.pool.sks-keyservers.net
Version: SKS 1.1.6
gpg: armor header:
Comment: Hostname: sks.okoyono.de
gpg: armor header:
gpg: pub 4096R/BF357DD4 2014-02-28 Tianon Gravi <[email protected]>
gpg: key BF357DD4: removed multiple subkey binding
gpg: key BF357DD4: removed multiple subkey binding
gpg: /tmp/tmp.DIX6yQQf25/trustdb.gpg: trustdb created
gpg: using PGP trust model
gpg: key BF357DD4: public key "Tianon Gravi <[email protected]>" imported
gpg: 1 keys cached (126 signatures)
gpg: 0 keys processed (0 validity counts cleared)
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
[[email protected] foo]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 4096R/BF357DD4 2014-02-28 [expires: 2019-07-06]
uid Tianon Gravi <[email protected]>
uid Tianon Gravi <[email protected]>
uid Tianon Gravi <[email protected]>
uid Andrew Page (tianon) <[email protected]>
uid Andrew Page (tianon) <[email protected]>
uid Andrew Page (Tianon Gravi) <[email protected]>
uid Tianon Gravi (Andrew Page) <[email protected]>
sub 4096R/769826E6 2014-02-28 [expires: 2019-07-06]
을 (우분투, MIT 및 기타 SKS) 같은 행동 - bash가 올바른, Docker의 잘못입니다.
의견/팁/제안 사항?
업데이트 : 내 "openjdk : 8"버전이 (8u121부터) 잠시 동안 업데이트되지 않았습니다. 나는 gpg v1.4.18을 실행하고있는 것을 발견했습니다. 나는 docker image pull openjdk:8
을 수행하여 나를 8u151, gpg 2.1.18로 데려왔다. CentOS 7 머신의 gpg 버전은 2.0.22입니다. 이 문제에