###前提・実現したいこと
docker build の際に Proxyを設定すると、docker history --no-trunc __image__
で表示されてしまいますが、この情報を残さない方法はあるでしょうか。
dockerのOracle12cイメージを作成しようと github.com/oracle/docker-images から持ってきた Dockerfile を使っているのですが、認証ありProxyの裏にいるため、環境変数 http_proxy=http://username:password@proxyhost:port
を設定してビルドしています ( buildDockerImage.sh が、環境変数をもとに --build-arg http_proxy=${http_proxy}
を指定するようになっています)。
###発生している問題・エラーメッセージ
この手順で作成したイメージの履歴を見ると以下のようになっていて、認証プロキシのユーザ名とパスワードがばっちり記録されてしまっています(出力は見やすく加工しています):
shell
1[matobaa@localhost dockerfiles]$ docker history --no-trunc 919 2IMAGE CREATED BY 3919df44 /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "$ORACLE_BASE/$RUN_FILE"] 41406756 /bin/sh -c #(nop) EXPOSE 1521/tcp 5500/tcp 5bcd8207 /bin/sh -c #(nop) VOLUME [/opt/oracle/oradata] 69459ef3 /bin/sh -c #(nop) WORKDIR /home/oracle 74dbe16d /bin/sh -c #(nop) USER [oracle] 819c1f25 |1 http_proxy=http://matobaa:P@ssW0rd@192.0.2.127:8080 /bin/sh -c $ORACLE_BASE/oraInventory/orainstRoot.sh && $ORACLE_HOME/root.sh && rm -rf $INSTALL_DIR 95e9c84d /bin/sh -c #(nop) USER [root] 109563f43 |1 http_proxy=http://matobaa:P@ssW0rd@192.0.2.127:8080 /bin/sh -c $INSTALL_DIR/$INSTALL_DB_BINARIES_FILE EE 11eee5fc7 /bin/sh -c #(nop) USER [oracle] 120bc6917 |1 http_proxy=http://matobaa:P@ssW0rd@192.0.2.127:8080 /bin/sh -c chmod ug+x $INSTALL_DIR/*.sh && sync && $INSTALL_DIR/$CHECK_SPACE_FILE && $INSTALL_DIR/$SETUP_LINUX_FILE 138a6af9e /bin/sh -c #(nop) COPY multi:7d82a8a4 in /opt/oracle/ 1455bc4e1 /bin/sh -c #(nop) COPY multi:b3dfdefb in /opt/oracle/install/ 15d087972 /bin/sh -c #(nop) ENV INSTALL_DIR=/opt/oracle/install PATH=/opt/oracle/product/12.1.0.2/dbhome_1/bin:/opt/oracle/product/12.1.0.2/dbhome_1/OPatch/:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LD_LIBRARY_PATH=/opt/oracle/product/12.1.0.2/dbhome_1/lib:/usr/lib CLASSPATH=/opt/oracle/product/12.1.0.2/dbhome_1/jlib:/opt/oracle/product/12.1.0.2/dbhome_1/rdbms/jlib 1652d871d /bin/sh -c #(nop) ENV ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/product/12.1.0.2/dbhome_1 INSTALL_FILE_1=linuxamd64_12102_database_1of2.zip INSTALL_FILE_2=linuxamd64_12102_database_2of2.zip INSTALL_RSP=db_inst.rsp CONFIG_RSP=dbca.rsp.tmpl PWD_FILE=setPassword.sh PERL_INSTALL_FILE=installPerl.sh RUN_FILE=runOracle.sh START_FILE=startDB.sh CREATE_DB_FILE=createDB.sh SETUP_LINUX_FILE=setupLinuxEnv.sh CHECK_SPACE_FILE=checkSpace.sh INSTALL_DB_BINARIES_FILE=installDBBinaries.sh 177d7dcc5 /bin/sh -c #(nop) MAINTAINER Gerald Venzl <gerald.venzl@oracle.com> 18f005b52 /bin/sh -c #(nop) CMD ["/bin/bash"] 19<missing> /bin/sh -c #(nop) ADD file:8244748e in / 20<missing> /bin/sh -c #(nop) MAINTAINER Oracle Linux Product Team <ol-ovm-info_ww@oracle.com>
###試したこと
docker build をみて --rm=true
や --force-rm
をつけてみたのですが、history は消せませんでした。
systemd で Docker の管理・設定 を参考に、/etc/sysconfig/docker に HTTP_PROXY を指定してみたのですが、中からproxyを通ることができず、ビルドできませんでした。
コンテナをexport | import することでレイヤーをマージできるようです。まだ試せていません。
###補足情報(言語/FW/ツール等のバージョンなど)
[matobaa@localhost ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo) [matobaa@localhost ~]$ docker --version Docker version 1.12.5, build 047e51b/1.12.5 [matobaa@localhost ~]$ docker info Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 8 Server Version: 1.12.5 Storage Driver: devicemapper Pool Name: docker-253:0-134978369-pool Pool Blocksize: 65.54 kB Base Device Size: 21.47 GB Backing Filesystem: xfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 13 GB Data Space Total: 107.4 GB Data Space Available: 34.82 GB Metadata Space Used: 7.311 MB Metadata Space Total: 2.147 GB Metadata Space Available: 2.14 GB Thin Pool Minimum Free Space: 10.74 GB Udev Sync Supported: true Deferred Removal Enabled: false Deferred Deletion Enabled: false Deferred Deleted Device Count: 0 Data loop file: /var/lib/docker/devicemapper/devicemapper/data WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device. Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata Library Version: 1.02.135-RHEL7 (2016-11-16) Logging Driver: journald Cgroup Driver: systemd Plugins: Volume: local Network: overlay bridge null host Authorization: rhel-push-plugin Swarm: inactive Runtimes: runc docker-runc Default Runtime: docker-runc Security Options: seccomp selinux Kernel Version: 3.10.0-514.6.1.el7.x86_64 Operating System: Red Hat Enterprise Linux OSType: linux Architecture: x86_64 Number of Docker Hooks: 2 CPUs: 4 Total Memory: 5.658 GiB Name: localhost.localdomain ID: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Http Proxy: http://matobaa:P@ssW0rd@192.0.2.127:8080 Https Proxy: http://matobaa:P@ssW0rd@192.0.2.127:8080 Registry: https://registry.access.redhat.com/v1/ Insecure Registries: 127.0.0.0/8 Registries: registry.access.redhat.com (secure), docker.io (secure) [matobaa@localhost ~]$
このスクリプト自体はrootを12GBも要求しやがるので、qiita:Dockerでルートディスクサイズを調整する にそって調整するか、 checkSpaces.sh#L13 の12を10未満に減らすことで build success します。
回答3件
あなたの回答
tips
プレビュー