【发布时间】:2019-08-18 13:11:10
【问题描述】:
我需要减小我的 Laravel 5.8 项目的 Docker 映像大小。
我现在有这个
FROM composer:latest
COPY . /src
ADD .env.example /src/.env
WORKDIR /src
RUN composer install
RUN php artisan key:generate
RUN chmod -R 777 storage/
CMD php artisan serve --host=0.0.0.0
docker-compose.yml
version: '3'
services:
johnywalker5g:
container_name: johnywalker5g
build:
context: .
dockerfile: Dockerfile
ports:
- 8000:8000
首先我跑了docker-compose up。我的网站正在运行。
然后,我运行了我看到的 docker images
docker images
我明白了
REPOSITORY TAG IMAGE ID CREATED SIZE
johnywalker5g latest c404551006c7 About an hour ago 193MB
composer latest 520372566db9 2 weeks ago 157MB
尺寸有点太大了193MB + 157MB
docker history c404551006c7
520372566db9 2 weeks ago /bin/sh -c #(nop) CMD ["composer"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENTRYPOINT ["/bin/sh" "/d… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) WORKDIR /app 0B
<missing> 2 weeks ago /bin/sh -c #(nop) COPY file:098af1c9d6ed00c2… 1.13kB
<missing> 2 weeks ago /bin/sh -c curl --silent --fail --location -… 1.91MB
<missing> 2 weeks ago /bin/sh -c #(nop) ENV COMPOSER_VERSION=1.8.4 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV COMPOSER_HOME=/tmp 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV COMPOSER_ALLOW_SUPERU… 0B
<missing> 2 weeks ago /bin/sh -c apk add --no-cache --virtual .bui… 1.83MB
<missing> 2 weeks ago /bin/sh -c echo "memory_limit=-1" > "$PHP_IN… 34B
<missing> 2 weeks ago /bin/sh -c apk --no-cache add --virtual .com… 75.5MB
<missing> 2 weeks ago /bin/sh -c #(nop) CMD ["php" "-a"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENTRYPOINT ["docker-php-e… 0B
<missing> 2 weeks ago /bin/sh -c docker-php-ext-enable sodium 167kB
<missing> 2 weeks ago /bin/sh -c #(nop) COPY multi:03970f7b3773444… 6.45kB
<missing> 2 weeks ago /bin/sh -c set -xe && apk add --no-cache --… 58MB
<missing> 2 weeks ago /bin/sh -c #(nop) COPY file:ce57c04b70896f77… 587B
<missing> 2 weeks ago /bin/sh -c set -xe; apk add --no-cache --v… 12MB
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_SHA256=6bb03e79a1… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_URL=https://secur… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_VERSION=7.3.3 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV GPG_KEYS=CBAF69F173A0… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_LDFLAGS=-Wl,-O1 -… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_CPPFLAGS=-fstack-… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_CFLAGS=-fstack-pr… 0B
<missing> 2 weeks ago /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHP_INI_DIR=/usr/loca… 0B
<missing> 2 weeks ago /bin/sh -c set -x && addgroup -g 82 -S www-… 4.85kB
<missing> 2 weeks ago /bin/sh -c apk add --no-cache ca-certifica… 2.71MB
<missing> 2 weeks ago /bin/sh -c #(nop) ENV PHPIZE_DEPS=autoconf … 0B
<missing> 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:38bc6b51693b13d84… 4.41MB
如何进一步减小它的大小?
【问题讨论】:
-
最终图像
johnywalker5g的大小只有 193MB,而不是 193MB+157MB。但无论如何,我不认为你可以进一步缩小它,因为你的composer基本映像已经使用php:7-alpine3.8作为基本映像,这是较小的 PHP 映像之一。此外,大小就是您在磁盘上看到的大小 - 如果将映像推送到 Docker Hub,则仅推送与composer映像相比的新层(大小约为 36MB)。 -
你能发布
docker history c404551006c7的结果吗?还有/storage的目的是什么?不应该是一卷吗? -
@Namoshek 你是说我现在拥有的东西还不错吗?
-
@Thomasleveil 我将更新我的帖子以包含该内容
-
来自
docker history输出,看来c404551006c7不是您发布的Dockerfile 生成的实际图像。仔细检查
标签: laravel docker docker-compose dockerfile laravel-5.8