mirror of
https://github.com/shlinkio/shlink.git
synced 2026-02-28 04:03:12 +08:00
Split Dockerfile into multiple stages, making the build be independent and then the released image just copy files from it
This commit is contained in:
25
Dockerfile
25
Dockerfile
@@ -1,5 +1,4 @@
|
|||||||
FROM php:7.4.2-alpine3.11
|
FROM php:7.4.2-alpine3.11 as base
|
||||||
LABEL maintainer="Alejandro Celaya <alejandro@alejandrocelaya.com>"
|
|
||||||
|
|
||||||
ARG SHLINK_VERSION=2.0.5
|
ARG SHLINK_VERSION=2.0.5
|
||||||
ENV SHLINK_VERSION ${SHLINK_VERSION}
|
ENV SHLINK_VERSION ${SHLINK_VERSION}
|
||||||
@@ -36,17 +35,21 @@ RUN wget https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8
|
|||||||
rm msodbcsql17_17.5.1.1-1_amd64.apk && \
|
rm msodbcsql17_17.5.1.1-1_amd64.apk && \
|
||||||
rm mssql-tools_17.5.1.1-1_amd64.apk
|
rm mssql-tools_17.5.1.1-1_amd64.apk
|
||||||
|
|
||||||
# Install shlink
|
|
||||||
COPY . .
|
|
||||||
COPY --from=composer:1.9.3 /usr/bin/composer ./composer.phar
|
|
||||||
RUN rm -rf ./docker && \
|
|
||||||
php composer.phar install --no-dev --optimize-autoloader --prefer-dist --no-progress --no-interaction && \
|
|
||||||
php composer.phar clear-cache && \
|
|
||||||
rm composer.*
|
|
||||||
|
|
||||||
# Add shlink to the path to ease running it after container is created
|
# Install shlink
|
||||||
|
FROM base as builder
|
||||||
|
COPY . .
|
||||||
|
COPY --from=composer:1.10.1 /usr/bin/composer ./composer.phar
|
||||||
|
RUN php composer.phar install --no-dev --optimize-autoloader --prefer-dist --no-progress --no-interaction && \
|
||||||
|
sed -i "s/%SHLINK_VERSION%/${SHLINK_VERSION}/g" config/autoload/app_options.global.php
|
||||||
|
|
||||||
|
|
||||||
|
# Prepare final image
|
||||||
|
FROM base
|
||||||
|
LABEL maintainer="Alejandro Celaya <alejandro@alejandrocelaya.com>"
|
||||||
|
|
||||||
|
COPY --from=builder /etc/shlink .
|
||||||
RUN ln -s /etc/shlink/bin/cli /usr/local/bin/shlink
|
RUN ln -s /etc/shlink/bin/cli /usr/local/bin/shlink
|
||||||
RUN sed -i "s/%SHLINK_VERSION%/${SHLINK_VERSION}/g" config/autoload/app_options.global.php
|
|
||||||
|
|
||||||
# Expose swoole port
|
# Expose swoole port
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
# Shlink Docker image
|
# Shlink Docker image
|
||||||
|
|
||||||
[](https://hub.docker.com/r/shlinkio/shlink/)
|
|
||||||
[](https://hub.docker.com/r/shlinkio/shlink/)
|
[](https://hub.docker.com/r/shlinkio/shlink/)
|
||||||
|
|
||||||
This image provides an easy way to set up [shlink](https://shlink.io) on a container-based runtime.
|
This image provides an easy way to set up [shlink](https://shlink.io) on a container-based runtime.
|
||||||
|
|||||||
Reference in New Issue
Block a user