perf(docker): optimize build for 3-core system
- Set MIX_OS_DEPS_COMPILE_PARTITION_COUNT to 3 (match available cores) - Enable Erlang JIT perf improvements - Remove redundant hex/rebar installation calls (already done earlier) This won't eliminate Docker compile time but should make better use of the 3 available cores. Estimated savings: 1-2 minutes on build.
This commit is contained in:
parent
f3758191fd
commit
8bad7c724e
1 changed files with 4 additions and 5 deletions
|
|
@ -21,7 +21,10 @@ ARG BUILDER_IMAGE="docker.io/hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION
|
||||||
ARG RUNNER_IMAGE="docker.io/debian:${DEBIAN_VERSION}"
|
ARG RUNNER_IMAGE="docker.io/debian:${DEBIAN_VERSION}"
|
||||||
|
|
||||||
FROM ${BUILDER_IMAGE} AS builder
|
FROM ${BUILDER_IMAGE} AS builder
|
||||||
ENV MIX_OS_DEPS_COMPILE_PARTITION_COUNT=6
|
ENV MIX_OS_DEPS_COMPILE_PARTITION_COUNT=3
|
||||||
|
# Enable parallel compilation with 3 cores
|
||||||
|
ENV ELIXIR_ERL_OPTIONS="+JPperf true"
|
||||||
|
ENV ERL_AFLAGS="-kernel shell_history enabled"
|
||||||
# Disable TTY for cross-architecture builds
|
# Disable TTY for cross-architecture builds
|
||||||
ENV TERM=dumb
|
ENV TERM=dumb
|
||||||
|
|
||||||
|
|
@ -46,8 +49,6 @@ COPY mix.exs mix.lock ./
|
||||||
COPY vendor vendor
|
COPY vendor vendor
|
||||||
RUN --mount=type=cache,target=/root/.hex \
|
RUN --mount=type=cache,target=/root/.hex \
|
||||||
--mount=type=cache,target=/root/.mix \
|
--mount=type=cache,target=/root/.mix \
|
||||||
mix local.hex --force && \
|
|
||||||
mix local.rebar --force && \
|
|
||||||
mix deps.get --only $MIX_ENV
|
mix deps.get --only $MIX_ENV
|
||||||
RUN mkdir config
|
RUN mkdir config
|
||||||
|
|
||||||
|
|
@ -57,8 +58,6 @@ RUN mkdir config
|
||||||
COPY config/config.exs config/${MIX_ENV}.exs config/
|
COPY config/config.exs config/${MIX_ENV}.exs config/
|
||||||
RUN --mount=type=cache,target=/root/.hex \
|
RUN --mount=type=cache,target=/root/.hex \
|
||||||
--mount=type=cache,target=/root/.mix \
|
--mount=type=cache,target=/root/.mix \
|
||||||
mix local.hex --force && \
|
|
||||||
mix local.rebar --force && \
|
|
||||||
mix deps.compile
|
mix deps.compile
|
||||||
|
|
||||||
RUN --mount=type=cache,target=/root/.mix \
|
RUN --mount=type=cache,target=/root/.mix \
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue