base.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. set -ex -o errexit -o nounset -o pipefail
  3. # Ensure we keep apt cache around in a Docker environment
  4. rm -f /etc/apt/apt.conf.d/docker-clean
  5. echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' >/etc/apt/apt.conf.d/keep-cache
  6. # Don't install recommended packages by default
  7. echo 'APT::Install-Recommends "false";' >>/etc/apt/apt.conf
  8. # Don't install suggested packages by default
  9. echo 'APT::Install-Suggests "false";' >>/etc/apt/apt.conf
  10. # Standard packages
  11. declare -ra standardPackages=(
  12. apt-utils
  13. ca-certificates
  14. curl
  15. git
  16. gnupg1
  17. gosu
  18. libcurl4-openssl-dev
  19. libzip-dev
  20. locales
  21. locales-all
  22. moreutils
  23. nano
  24. procps
  25. software-properties-common
  26. unzip
  27. wget
  28. zip
  29. )
  30. # Image Optimization
  31. declare -ra imageOptimization=(
  32. gifsicle
  33. jpegoptim
  34. optipng
  35. pngquant
  36. )
  37. # Image Processing
  38. declare -ra imageProcessing=(
  39. libjpeg62-turbo-dev
  40. libmagickwand-dev
  41. libpng-dev
  42. )
  43. # Required for GD
  44. declare -ra gdDependencies=(
  45. libwebp-dev
  46. libwebp6
  47. libxpm-dev
  48. libxpm4
  49. )
  50. # Video Processing
  51. declare -ra videoProcessing=(
  52. ffmpeg
  53. )
  54. # Database
  55. declare -ra databaseDependencies=(
  56. libpq-dev
  57. libsqlite3-dev
  58. mariadb-client
  59. postgresql-client
  60. )
  61. apt-get update
  62. apt-get upgrade -y
  63. apt-get install -y \
  64. ${standardPackages[*]} \
  65. ${imageOptimization[*]} \
  66. ${imageProcessing[*]} \
  67. ${gdDependencies[*]} \
  68. ${videoProcessing[*]} \
  69. ${databaseDependencies[*]} \
  70. ${APT_PACKAGES_EXTRA}
  71. locale-gen
  72. update-locale