build.sh 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/sh -ex
  2. ## Add bash tools to /sbin
  3. ln -s /container/tool/* /sbin/
  4. mkdir -p /container/service
  5. mkdir -p /container/environment /container/environment/startup
  6. chmod 700 /container/environment/ /container/environment/startup
  7. sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
  8. echo "http://mirrors.aliyun.com/alpine/edge/community" >> /etc/apk/repositories
  9. addgroup -g 8377 docker_env
  10. # General config
  11. export LC_ALL=C
  12. export DEBIAN_FRONTEND=noninteractive
  13. MINIMAL_APT_GET_INSTALL='apt-get install -y --no-install-recommends'
  14. ## Prevent initramfs updates from trying to run grub and lilo.
  15. ## https://journal.paul.querna.org/articles/2013/10/15/docker-ubuntu-on-rackspace/
  16. ## http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594189
  17. export INITRD=no
  18. printf no > /container/environment/INITRD
  19. apt-get update
  20. ## Fix some issues with APT packages.
  21. ## See https://github.com/dotcloud/docker/issues/1024
  22. dpkg-divert --local --rename --add /sbin/initctl
  23. ln -sf /bin/true /sbin/initctl
  24. cp "/usr/share/zoneinfo/Asia/Shanghai" /etc/localtime
  25. echo "Asia/Shanghai" > /etc/timezone
  26. ## Install apt-utils.
  27. $MINIMAL_APT_GET_INSTALL apt-utils apt-transport-https ca-certificates locales procps dirmngr gnupg iproute2 python3-minimal python3-yaml
  28. ## Upgrade all packages.
  29. apt-get dist-upgrade -y --no-install-recommends -o Dpkg::Options::="--force-confold"
  30. # fix locale
  31. echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
  32. locale-gen en_US
  33. update-locale LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
  34. printf en_US.UTF-8 > /container/environment/LANG
  35. printf en_US.UTF-8 > /container/environment/LANGUAGE
  36. printf en_US.UTF-8 > /container/environment/LC_CTYPE
  37. apt-get clean
  38. rm -rf /tmp/* /var/tmp/*
  39. rm -rf /var/lib/apt/lists/*
  40. # Remove useless files
  41. rm -rf /container/file
  42. rm -rf /container/build.sh /container/Dockerfile