Upgrade to Elixir 1.16.2 (#71)
* Upgraded local docker to 1.16.2 * Removed tmpfix from mix check that was waiting for 1.16.2 * Update selfhosted dockerfile with some addl. updates
This commit is contained in:
parent
afe41d2e36
commit
0e537d8f57
4 changed files with 30 additions and 18 deletions
|
|
@ -9,18 +9,15 @@
|
||||||
fix: true,
|
fix: true,
|
||||||
|
|
||||||
## don't retry automatically even if last run resulted in failures
|
## don't retry automatically even if last run resulted in failures
|
||||||
# retry: false,
|
retry: false,
|
||||||
|
|
||||||
## list of tools (see `mix check` docs for a list of default curated tools)
|
## list of tools (see `mix check` docs for a list of default curated tools)
|
||||||
tools: [
|
tools: [
|
||||||
{:compiler, env: %{"MIX_ENV" => "test"}},
|
{:compiler, env: %{"MIX_ENV" => "test"}},
|
||||||
{:formatter, env: %{"MIX_ENV" => "test"}},
|
{:formatter, env: %{"MIX_ENV" => "test"}},
|
||||||
{:sobelow, "mix sobelow --config"},
|
{:sobelow, "mix sobelow --config"},
|
||||||
# TODO: delete these and replace them with builtin ex_unit and formatter tools
|
{:prettier_formatting, "yarn run prettier . --check", fix: "yarn run prettier . --write"},
|
||||||
# once Elixir 1.16.2 is released (see: https://github.com/karolsluszniak/ex_check/issues/41#issuecomment-1921390413)
|
{:npm_test, false}
|
||||||
{:elixir_tests, "mix test"},
|
|
||||||
{:elixir_formatting, "mix format --check-formatted", fix: "mix format"},
|
|
||||||
{:prettier_formatting, "yarn run prettier . --check", fix: "yarn run prettier . --write"}
|
|
||||||
|
|
||||||
## curated tools may be disabled (e.g. the check for compilation warnings)
|
## curated tools may be disabled (e.g. the check for compilation warnings)
|
||||||
# {:compiler, false},
|
# {:compiler, false},
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
# Extend from the official Elixir image.
|
ARG ELIXIR_VERSION=1.16.2
|
||||||
FROM elixir:latest
|
ARG OTP_VERSION=26.2.2
|
||||||
|
ARG DEBIAN_VERSION=bookworm-20240130
|
||||||
|
ARG DEV_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
|
||||||
|
|
||||||
|
FROM ${DEV_IMAGE}
|
||||||
|
|
||||||
# Install debian packages
|
# Install debian packages
|
||||||
RUN apt-get update -qq
|
RUN apt-get update -qq
|
||||||
RUN apt-get install -y inotify-tools ffmpeg \
|
RUN apt-get install -y inotify-tools ffmpeg curl git openssh-client \
|
||||||
python3 python3-pip python3-setuptools python3-wheel python3-dev
|
python3 python3-pip python3-setuptools python3-wheel python3-dev
|
||||||
|
|
||||||
# Install nodejs
|
# Install nodejs
|
||||||
|
|
@ -28,6 +32,7 @@ COPY . ./
|
||||||
RUN chmod +x ./docker-run.dev.sh
|
RUN chmod +x ./docker-run.dev.sh
|
||||||
|
|
||||||
# Install Elixir deps
|
# Install Elixir deps
|
||||||
|
# RUN mix archive.install github hexpm/hex branch latest
|
||||||
RUN mix deps.get
|
RUN mix deps.get
|
||||||
# Gives us iex shell history
|
# Gives us iex shell history
|
||||||
ENV ERL_AFLAGS="-kernel shell_history enabled"
|
ENV ERL_AFLAGS="-kernel shell_history enabled"
|
||||||
|
|
|
||||||
2
ideas.md
2
ideas.md
|
|
@ -2,5 +2,3 @@
|
||||||
- Use a UUID for the media database ID (or at least alongside it)
|
- Use a UUID for the media database ID (or at least alongside it)
|
||||||
- Look into this and its recommended plugins https://hexdocs.pm/ex_check/readme.html
|
- Look into this and its recommended plugins https://hexdocs.pm/ex_check/readme.html
|
||||||
- Add output template option for the source's friendly name
|
- Add output template option for the source's friendly name
|
||||||
- TODO: Install Elixir 1.16.2 when available to fix bug with `ex_check` https://github.com/karolsluszniak/ex_check/issues/41#issuecomment-1921390413
|
|
||||||
- delete `{:elixir_tests, "mix test"}` and formatting check
|
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@
|
||||||
# - https://pkgs.org/ - resource for finding needed packages
|
# - https://pkgs.org/ - resource for finding needed packages
|
||||||
# - Ex: hexpm/elixir:1.16.0-erlang-26.2.1-debian-bullseye-20231009-slim
|
# - Ex: hexpm/elixir:1.16.0-erlang-26.2.1-debian-bullseye-20231009-slim
|
||||||
#
|
#
|
||||||
ARG ELIXIR_VERSION=1.16.0
|
ARG ELIXIR_VERSION=1.16.2
|
||||||
ARG OTP_VERSION=26.2.1
|
ARG OTP_VERSION=26.2.2
|
||||||
ARG DEBIAN_VERSION=bullseye-20231009-slim
|
ARG DEBIAN_VERSION=bookworm-20240130-slim
|
||||||
|
|
||||||
ARG BUILDER_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
|
ARG BUILDER_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
|
||||||
ARG RUNNER_IMAGE="debian:${DEBIAN_VERSION}"
|
ARG RUNNER_IMAGE="debian:${DEBIAN_VERSION}"
|
||||||
|
|
@ -76,12 +76,13 @@ FROM ${RUNNER_IMAGE}
|
||||||
|
|
||||||
RUN apt-get update -y
|
RUN apt-get update -y
|
||||||
RUN apt-get install -y libstdc++6 openssl libncurses5 locales ca-certificates \
|
RUN apt-get install -y libstdc++6 openssl libncurses5 locales ca-certificates \
|
||||||
python3 python3-pip ffmpeg
|
ffmpeg curl git openssh-client
|
||||||
RUN apt-get clean && rm -f /var/lib/apt/lists/*_*
|
RUN apt-get clean && rm -f /var/lib/apt/lists/*_*
|
||||||
|
|
||||||
# Download YT-DLP
|
# Download and update YT-DLP
|
||||||
# NOTE: If you're seeing weird issues, consider using the FFMPEG released by yt-dlp
|
RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
|
||||||
RUN python3 -m pip install -U --pre yt-dlp
|
RUN chmod a+rx /usr/local/bin/yt-dlp
|
||||||
|
RUN yt-dlp -U
|
||||||
|
|
||||||
# Set the locale
|
# Set the locale
|
||||||
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
|
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
|
||||||
|
|
@ -106,6 +107,17 @@ ENV RUN_CONTEXT="selfhosted"
|
||||||
# Only copy the final release from the build stage
|
# Only copy the final release from the build stage
|
||||||
COPY --from=builder --chown=nobody:root /app/_build/${MIX_ENV}/rel/pinchflat ./
|
COPY --from=builder --chown=nobody:root /app/_build/${MIX_ENV}/rel/pinchflat ./
|
||||||
|
|
||||||
|
# NEVER do this if you're running in an environment where you don't trust the user
|
||||||
|
# (ie: most environments). This is only acceptable in a self-hosted environment.
|
||||||
|
# The user could just run the whole container as root and bypass this anyway so
|
||||||
|
# it's not a huge deal.
|
||||||
|
# This removes the root password to allow users to assume root if needed. This is
|
||||||
|
# preferrable to running the whole container as root so that the files/directories
|
||||||
|
# created by the app aren't owned by root and are therefore easier for other users
|
||||||
|
# and processes to interact with. If you want to just run the whole container as
|
||||||
|
# root, use --user 0:0 or something.
|
||||||
|
RUN passwd -d root
|
||||||
|
|
||||||
USER nobody
|
USER nobody
|
||||||
|
|
||||||
# If using an environment that doesn't automatically reap zombie processes, it is
|
# If using an environment that doesn't automatically reap zombie processes, it is
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue