owncloud-docker / php

Base image for a general PHP stack
MIT License
5 stars 5 forks source link

Avoid installing recommended packages #124

Closed d7oc closed 1 year ago

d7oc commented 1 year ago

Currently the dockerfile installs recommended packages as well. While the recommended packages might make sense in some conditions, there are also unneeded packages installed this way. This PR aims to resolve this. So it should be a discussion starter to see want packages we still need after adding the --no-install-recommends option to apt.

Here is the list of the package diff:

Click to see ``` --- old.txt 2023-06-01 19:04:50 +++ new.txt 2023-06-01 18:57:34 @@ -4,70 +4,29 @@ apache2-utils autoconf automake -autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu -bsdmainutils -build-essential -ca-certificates cpp cpp-9 -curl -dbus -debhelper -dh-autoreconf -dh-strip-nondeterminism -dirmngr -dpkg-dev -dwz -fakeroot file fontconfig-config fonts-dejavu-core -fonts-droid-fallback -fonts-noto-mono -fonts-urw-base35 -g++ -g++-9 gcc gcc-9 gcc-9-base -gettext -gettext-base -ghostscript -gnupg -gnupg-l10n -gnupg-utils -gpg -gpg-agent -gpg-wks-client -gpg-wks-server -gpgconf -gpgsm -groff-base -gsfonts imagemagick-6-common -intltool-debian -krb5-locales -libalgorithm-diff-perl -libalgorithm-diff-xs-perl -libalgorithm-merge-perl libapache2-mod-php libapache2-mod-php7.4 -libapparmor1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap -libarchive-cpio-perl -libarchive-zip-perl libarchive13 libargon2-1 libasan5 libasn1-8-heimdal -libassuan0 libatomic1 libavahi-client3 libavahi-common-data @@ -79,22 +38,15 @@ libc6-dev libcap2 libcc1-0 -libcroco3 libcrypt-dev libctf-nobfd0 libctf0 libcups2 libcurl4 libdbus-1-3 -libdebhelper-perl -libdpkg-perl libedit2 -libelf1 libexpat1 -libfakeroot libfftw3-double3 -libfile-fcntllock-perl -libfile-stripnondeterminism-perl libfontconfig1 libfreetype6 libgcc-9-dev @@ -102,11 +54,7 @@ libgdbm-compat4 libgdbm6 libglib2.0-0 -libglib2.0-data libgomp1 -libgpgme11 -libgs9 -libgs9-common libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal @@ -114,13 +62,10 @@ libheimntlm0-heimdal libhx509-5-heimdal libicu66 -libidn11 -libijs-0.35 libisl22 libitm1 libjansson4 libjbig0 -libjbig2dec0 libjpeg-turbo8 libjpeg8 libk5crypto3 @@ -128,38 +73,29 @@ libkrb5-26-heimdal libkrb5-3 libkrb5support0 -libksba8 liblcms2-2 libldap-2.4-2 libldap-common libldb2 liblmdb0 -liblocale-gettext-perl liblqr-1-0 liblsan0 -libltdl-dev libltdl7 liblua5.2-0 libmagic-mgc libmagic1 libmagickcore-6.q16-6 libmagickwand-6.q16-6 -libmail-sendmail-perl libmpc3 libmpdec2 libmpfr6 libnghttp2-14 -libnpth0 libonig5 -libopenjp2-7 -libpaper-utils -libpaper1 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix2 libperl5.30 -libpipeline1 libpng16-16 libpopt0 libpq5 @@ -173,7 +109,6 @@ libroken18-heimdal librtmp1 libsasl2-2 -libsasl2-modules libsasl2-modules-db libsigsegv2 libsmbclient @@ -184,9 +119,6 @@ libssh-4 libssl-dev libssl1.1 -libstdc++-9-dev -libsub-override-perl -libsys-hostname-long-perl libtalloc2 libtdb1 libtevent0 @@ -194,7 +126,6 @@ libtool libtsan0 libubsan1 -libuchardet0 libwbclient0 libwebp6 libwebpmux3 @@ -211,18 +142,10 @@ libzip5 linux-libc-dev m4 -make -man-db -manpages -manpages-dev mime-support -netbase -openssl -patch perl perl-modules-5.30 php-apcu -php-apcu-bc php-common php-curl php-dev @@ -235,7 +158,6 @@ php-ldap php-mbstring php-mysql -php-pear php-pgsql php-redis php-soap @@ -260,35 +182,18 @@ php7.4-sqlite3 php7.4-xml php7.4-zip -pinentry-curses -pkg-php-tools -po-debconf -poppler-data psmisc -publicsuffix python3 -python3-crypto -python3-gpg python3-ldb python3-minimal -python3-samba python3-talloc -python3-tdb python3.8 python3.8-minimal readline-common samba-common -samba-common-bin -samba-dsdb-modules samba-libs -shared-mime-info shtool smbclient sqlite -sqlite3 -ssl-cert -ttf-dejavu-core tzdata ucf -xdg-user-dirs -xz-utils ```
xoxys commented 1 year ago

The diff doesn't seem to be correct as it lists some packages as missing that are installed in the base image already like curl. The proper diff should be:

diff -c old.txt new.txt
*** old.txt 2023-06-02 09:56:15.846850207 +0200
--- new.txt 2023-06-02 09:57:15.957831180 +0200
***************
*** 9,15 ****
  base-files
  base-passwd
  bash
- bsdmainutils
  bsdutils
  bzip2
  ca-certificates
--- 9,14 ----
***************
*** 17,23 ****
  cron
  curl
  dash
- dbus
  debconf
  debianutils
  diffutils
--- 16,21 ----
***************
*** 29,39 ****
  findutils
  fontconfig-config
  fonts-dejavu-core
- fonts-droid-fallback
- fonts-noto-mono
- fonts-urw-base35
  gcc-10-base
- ghostscript
  gnupg-l10n
  gnupg-utils
  gnupg
--- 27,33 ----
***************
*** 45,51 ****
  gpgsm
  gpgv
  grep
- gsfonts
  gzip
  hostname
  imagemagick-6-common
--- 39,44 ----
***************
*** 55,61 ****
  libacl1
  libapache2-mod-php7.4
  libapache2-mod-php
- libapparmor1
  libapr1
  libaprutil1-dbd-sqlite3
  libaprutil1-ldap
--- 48,53 ----
***************
*** 100,113 ****
  libgdbm-compat4
  libgdbm6
  libglib2.0-0
- libglib2.0-data
  libgmp10
  libgnutls30
  libgomp1
  libgpg-error0
- libgpgme11
- libgs9-common
- libgs9
  libgssapi-krb5-2
  libgssapi3-heimdal
  libhcrypto4-heimdal
--- 92,101 ----
***************
*** 116,127 ****
  libhogweed5
  libhx509-5-heimdal
  libicu66
- libidn11
  libidn2-0
- libijs-0.35
  libjansson4
  libjbig0
- libjbig2dec0
  libjpeg-turbo8
  libjpeg8
  libjq1
--- 104,112 ----
***************
*** 154,167 ****
  libnpth0
  libnss-wrapper
  libonig5
- libopenjp2-7
  libp11-kit0
  libpam-modules-bin
  libpam-modules
  libpam-runtime
  libpam0g
- libpaper-utils
- libpaper1
  libpcre2-8-0
  libpcre3
  libperl5.30
--- 139,149 ----
***************
*** 227,239 ****
  mount
  ncurses-base
  ncurses-bin
- netbase
  openssl
  passwd
  perl-base
  perl-modules-5.30
  perl
- php-apcu-bc
  php-apcu
  php-common
  php-curl
--- 209,219 ----
***************
*** 270,309 ****
  php7.4-xml
  php7.4-zip
  pinentry-curses
- poppler-data
  procps
  psmisc
  publicsuffix
- python3-crypto
- python3-gpg
  python3-ldb
  python3-minimal
- python3-samba
  python3-talloc
- python3-tdb
  python3.8-minimal
  python3.8
  python3
  readline-common
- samba-common-bin
  samba-common
- samba-dsdb-modules
  samba-libs
  sed
  sensible-utils
- shared-mime-info
  smbclient
- sqlite3
  sqlite
- ssl-cert
  sysvinit-utils
  tar
- ttf-dejavu-core
  tzdata
  ubuntu-keyring
  ucf
  util-linux
  wget
- xdg-user-dirs
- xz-utils
  zlib1g
--- 250,276 ----
xoxys commented 1 year ago

Added back some packages. New diff:

diff -c ~/.tmp/old.txt ~/.tmp/new.txt 
*** old.txt 2023-06-02 09:56:15.846850207 +0200
--- new.txt 2023-06-02 11:05:40.543356726 +0200
***************
*** 9,15 ****
  base-files
  base-passwd
  bash
- bsdmainutils
  bsdutils
  bzip2
  ca-certificates
--- 9,14 ----
***************
*** 17,23 ****
  cron
  curl
  dash
- dbus
  debconf
  debianutils
  diffutils
--- 16,21 ----
***************
*** 29,39 ****
  findutils
  fontconfig-config
  fonts-dejavu-core
- fonts-droid-fallback
- fonts-noto-mono
- fonts-urw-base35
  gcc-10-base
- ghostscript
  gnupg-l10n
  gnupg-utils
  gnupg
--- 27,33 ----
***************
*** 45,51 ****
  gpgsm
  gpgv
  grep
- gsfonts
  gzip
  hostname
  imagemagick-6-common
--- 39,44 ----
***************
*** 55,61 ****
  libacl1
  libapache2-mod-php7.4
  libapache2-mod-php
- libapparmor1
  libapr1
  libaprutil1-dbd-sqlite3
  libaprutil1-ldap
--- 48,53 ----
***************
*** 100,113 ****
  libgdbm-compat4
  libgdbm6
  libglib2.0-0
- libglib2.0-data
  libgmp10
  libgnutls30
  libgomp1
  libgpg-error0
  libgpgme11
- libgs9-common
- libgs9
  libgssapi-krb5-2
  libgssapi3-heimdal
  libhcrypto4-heimdal
--- 92,102 ----
***************
*** 116,127 ****
  libhogweed5
  libhx509-5-heimdal
  libicu66
- libidn11
  libidn2-0
- libijs-0.35
  libjansson4
  libjbig0
- libjbig2dec0
  libjpeg-turbo8
  libjpeg8
  libjq1
--- 105,113 ----
***************
*** 154,167 ****
  libnpth0
  libnss-wrapper
  libonig5
- libopenjp2-7
  libp11-kit0
  libpam-modules-bin
  libpam-modules
  libpam-runtime
  libpam0g
- libpaper-utils
- libpaper1
  libpcre2-8-0
  libpcre3
  libperl5.30
--- 140,150 ----
***************
*** 188,194 ****
  libsmartcols1
  libsmbclient
  libsodium23
- libsqlite0
  libsqlite3-0
  libss2
  libssh-4
--- 171,176 ----
***************
*** 227,233 ****
  mount
  ncurses-base
  ncurses-bin
- netbase
  openssl
  passwd
  perl-base
--- 209,214 ----
***************
*** 270,281 ****
  php7.4-xml
  php7.4-zip
  pinentry-curses
- poppler-data
  procps
  psmisc
  publicsuffix
  python3-crypto
- python3-gpg
  python3-ldb
  python3-minimal
  python3-samba
--- 251,260 ----
***************
*** 291,309 ****
  samba-libs
  sed
  sensible-utils
- shared-mime-info
  smbclient
  sqlite3
- sqlite
- ssl-cert
  sysvinit-utils
  tar
- ttf-dejavu-core
  tzdata
  ubuntu-keyring
  ucf
  util-linux
  wget
- xdg-user-dirs
- xz-utils
  zlib1g
--- 270,282 ----
xoxys commented 1 year ago

@phil-davis do you know if we need python for anything related to ownCloud? IMO we can drop python completely.

d7oc commented 1 year ago

Is samba-common-bin really needed? This brings back a dependency to python3-crypto.

xoxys commented 1 year ago

Yep, saw that too, will drop it again.

phil-davis commented 1 year ago

@phil-davis do you know if we need python for anything related to ownCloud? IMO we can drop python completely.

yes, can drop python.

I have some memory that we used to have something in the tooling that used python (there was discussion about changes from python2 to python3... "a few years ago", but now I don't remember what the repo/tool/context was!)

phil-davis commented 1 year ago

IMO Ubuntu won't like to work without python????

xoxys commented 1 year ago

The Ubuntu base container image comes without python, it's pulled in by some smbclient deps, and we will keep it for now.