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
e6b04bd675
commit
2267b47de8
4 changed files with 30 additions and 18 deletions
|
|
@ -9,18 +9,15 @@
|
|||
fix: true,
|
||||
|
||||
## 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)
|
||||
tools: [
|
||||
{:compiler, env: %{"MIX_ENV" => "test"}},
|
||||
{:formatter, env: %{"MIX_ENV" => "test"}},
|
||||
{:sobelow, "mix sobelow --config"},
|
||||
# TODO: delete these and replace them with builtin ex_unit and formatter tools
|
||||
# once Elixir 1.16.2 is released (see: https://github.com/karolsluszniak/ex_check/issues/41#issuecomment-1921390413)
|
||||
{:elixir_tests, "mix test"},
|
||||
{:elixir_formatting, "mix format --check-formatted", fix: "mix format"},
|
||||
{:prettier_formatting, "yarn run prettier . --check", fix: "yarn run prettier . --write"}
|
||||
{:prettier_formatting, "yarn run prettier . --check", fix: "yarn run prettier . --write"},
|
||||
{:npm_test, false}
|
||||
|
||||
## curated tools may be disabled (e.g. the check for compilation warnings)
|
||||
# {:compiler, false},
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
# Extend from the official Elixir image.
|
||||
FROM elixir:latest
|
||||
ARG ELIXIR_VERSION=1.16.2
|
||||
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
|
||||
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
|
||||
|
||||
# Install nodejs
|
||||
|
|
@ -28,6 +32,7 @@ COPY . ./
|
|||
RUN chmod +x ./docker-run.dev.sh
|
||||
|
||||
# Install Elixir deps
|
||||
# RUN mix archive.install github hexpm/hex branch latest
|
||||
RUN mix deps.get
|
||||
# Gives us iex shell history
|
||||
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)
|
||||
- Look into this and its recommended plugins https://hexdocs.pm/ex_check/readme.html
|
||||
- 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
|
||||
# - Ex: hexpm/elixir:1.16.0-erlang-26.2.1-debian-bullseye-20231009-slim
|
||||
#
|
||||
ARG ELIXIR_VERSION=1.16.0
|
||||
ARG OTP_VERSION=26.2.1
|
||||
ARG DEBIAN_VERSION=bullseye-20231009-slim
|
||||
ARG ELIXIR_VERSION=1.16.2
|
||||
ARG OTP_VERSION=26.2.2
|
||||
ARG DEBIAN_VERSION=bookworm-20240130-slim
|
||||
|
||||
ARG BUILDER_IMAGE="hexpm/elixir:${ELIXIR_VERSION}-erlang-${OTP_VERSION}-debian-${DEBIAN_VERSION}"
|
||||
ARG RUNNER_IMAGE="debian:${DEBIAN_VERSION}"
|
||||
|
|
@ -76,12 +76,13 @@ FROM ${RUNNER_IMAGE}
|
|||
|
||||
RUN apt-get update -y
|
||||
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/*_*
|
||||
|
||||
# Download YT-DLP
|
||||
# NOTE: If you're seeing weird issues, consider using the FFMPEG released by yt-dlp
|
||||
RUN python3 -m pip install -U --pre yt-dlp
|
||||
# Download and update YT-DLP
|
||||
RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
|
||||
RUN chmod a+rx /usr/local/bin/yt-dlp
|
||||
RUN yt-dlp -U
|
||||
|
||||
# Set the locale
|
||||
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
|
||||
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
|
||||
|
||||
# If using an environment that doesn't automatically reap zombie processes, it is
|
||||
|
|
|
|||
Loading…
Reference in a new issue