1、在 Jenkins 中构建镜像,报错:Error processing tar file(exit status 1): unexpected EOF。如图1
Step 10/10 : RUN chown -R nginx:nginx /mcloud/ && chmod 777 /mcloud/cmp_main/data && chmod 777 /usr/share/sync.sh && chmod 777 /mcloud/cmp_main/attachment && chmod +x /config/init/* && chmod +x /etc/nginx/conf.d/* && chmod +x /etc/supervisord.d/* && rm -rf /mcloud/cmp_main/data/tpl/ && rm -rf /etc/nginx/conf.d/status.conf ---> Running in 800972ee06bc Error processing tar file(exit status 1): unexpected EOF Build step 'Docker Build and Publish' marked build as failure Finished: FAILURE
2、查看 Dockerfile ,应该是 ADD 命令的行数过多了一些,进而导致空间不足。参考网址:https://stackoverflow.com/questions/42784396/docker-error-error-processing-tar-fileexit-status-1-unexpected-eof 。如图2
ADD code /mcloud/cmp_main ADD code/build/c_files/ / ADD code/build/sync.sh /usr/share/sync.sh ADD code/build/cacheJsSDK.sh /usr/share/cacheJsSDK.sh ADD code/build/MP_verify_3RUFnkMVef9eh3mJ.txt /mcloud/cmp_main/ ADD code/build/MP_verify_qxIMkC3go7fNqBzb.txt /mcloud/cmp_main/ RUN sed -i 's/allow_url_fopen = Off/allow_url_fopen = On/g' /usr/local/php/etc/php.ini && / sed -i 's/disable_functions = exec,system/disable_functions = system/g' /usr/local/php/etc/php.ini RUN chown -R nginx:nginx /mcloud/ && / chmod 777 /mcloud/cmp_main/data && / chmod 777 /usr/share/sync.sh && / chmod 777 /mcloud/cmp_main/attachment && / chmod +x /config/init/* && / chmod +x /etc/nginx/conf.d/* && / chmod +x /etc/supervisord.d/* && / rm -rf /mcloud/cmp_main/data/tpl/ && / rm -rf /etc/nginx/conf.d/status.conf
3、剪切 /build/sync.sh 至 /build/c_files/usr/share/sync.sh。剪切 /build/cacheJsSDK.sh 至 /build/c_files/usr/share/cacheJsSDK.sh。剪切 /build/MP_verify_3RUFnkMVef9eh3mJ.txt 至 /build/c_files/mcloud/cmp_main/MP_verify_3RUFnkMVef9eh3mJ.txt。剪切 /build/MP_verify_qxIMkC3go7fNqBzb.txt 至 /build/c_files/mcloud/cmp_main/MP_verify_qxIMkC3go7fNqBzb.txt。编辑 Dockerfile,删除了 4 行 ADD。如图3
RUN sed -i 's/allow_url_fopen = Off/allow_url_fopen = On/g' /usr/local/php/etc/php.ini && / sed -i 's/disable_functions = exec,system/disable_functions = system/g' /usr/local/php/etc/php.ini ADD code /mcloud/cmp_main ADD code/build/c_files/ / RUN chown -R nginx:nginx /mcloud/ && / chmod 777 /mcloud/cmp_main/data && / chmod 777 /usr/share/sync.sh && / chmod 777 /mcloud/cmp_main/attachment && / chmod +x /config/init/* && / chmod +x /etc/nginx/conf.d/* && / chmod +x /etc/supervisord.d/* && / rm -rf /mcloud/cmp_main/data/tpl/ && / rm -rf /etc/nginx/conf.d/status.conf
4、再次构建,第一次构建报错:unknown parent image ID sha256:。不过第二次构建成功。如图4
5、调整前后的镜像大小分别为:4711、3882。大小减少了:4711 – 3882 = 829。如图5
6、另一个可能的原因在于 Dockerfile 刚经过大幅度的修改。此种情况下,建议多构建几次。最终还是可以构建成功。
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/181618.html