mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-25 11:46:43 +01:00
02d042a6b9
Do following actions to reduce the size of the generated images. - Change `COPY` command + `chown`/`chmod` command to `COPY` command + `--chown`/`--chmod` option. To prevent both files before/after `chown`/`chmod` commands from being recorded on different layers. - Put all `tdnf` commands in a single `RUN` command and move `tdnf clean all` command to the end. To prevent the `tdnf` cache from being recorded on a layer, and the `tdnf` database from being recorded on multiple layers. - Add `--link` option to `COPY` command. This does not contribute to image size reduction, but makes image building more efficient. - Move `chown /etc/pki/tls/certs` to the `Dockerfile.base`. This does not contribute to image size reduction, but is used in conjunction with `COPY --link` to make image building more efficient. The target images and their sizes are as follows. (The sizes are the value when built locally) - harbor-core : 185MB -> 118MB - harbor-db : 285MB -> 263MB - harbor-exporter : 108MB -> 79.1MB - harbor-jobservice : 159MB -> 105MB - harbor-registryctl : 160MB -> 104MB - redis-photon : 179MB -> 170 MB - standalone-db-migrator : 328MB -> 284MB Note that harbor-log, harbor-portal, and nginx-photon have almost no effect, and prepare is not directly executed by the user, so they are not included. Also, registry-photon and trivy-adapter-photon are not included, since PR#20622 and PR#20623 include equivalent action for these two, respectively. Signed-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>
18 lines
918 B
Docker
18 lines
918 B
Docker
FROM photon:5.0
|
|
|
|
ENV PGDATA /var/lib/postgresql/data
|
|
|
|
RUN tdnf install -y shadow >> /dev/null \
|
|
&& groupadd -r postgres --gid=999 \
|
|
&& useradd -m -r -g postgres --uid=999 postgres \
|
|
&& tdnf install -y postgresql14-server >> /dev/null \
|
|
&& tdnf install -y gzip postgresql15-server findutils bc >> /dev/null \
|
|
&& mkdir -p /run/postgresql \
|
|
&& chown -R postgres:postgres /run/postgresql \
|
|
&& chmod 2777 /run/postgresql \
|
|
&& mkdir -p "$PGDATA" && chown -R postgres:postgres "$PGDATA" && chmod 777 "$PGDATA" \
|
|
&& sed -i "s|#listen_addresses = 'localhost'.*|listen_addresses = '*'|g" /usr/pgsql/15/share/postgresql/postgresql.conf.sample \
|
|
&& sed -i "s|#unix_socket_directories = '/tmp'.*|unix_socket_directories = '/run/postgresql'|g" /usr/pgsql/15/share/postgresql/postgresql.conf.sample \
|
|
&& tdnf erase -y toybox && tdnf install -y util-linux net-tools \
|
|
&& tdnf clean all
|