46 lines
No EOL
1.1 KiB
Docker
46 lines
No EOL
1.1 KiB
Docker
FROM hexpm/elixir:1.17.3-erlang-27.2-debian-bullseye-20241202
|
|
|
|
# Install dev tools and PostgreSQL client
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
git \
|
|
inotify-tools \
|
|
postgresql-client \
|
|
curl \
|
|
wget \
|
|
sudo \
|
|
locales \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Generate locale
|
|
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
|
|
locale-gen en_US.UTF-8
|
|
|
|
# Create non-root user
|
|
ARG USERNAME=vscode
|
|
ARG USER_UID=1000
|
|
ARG USER_GID=$USER_UID
|
|
|
|
RUN groupadd --gid $USER_GID $USERNAME \
|
|
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
|
|
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
|
|
&& chmod 0440 /etc/sudoers.d/$USERNAME
|
|
|
|
# Install hex and rebar
|
|
USER $USERNAME
|
|
RUN mix local.hex --force && \
|
|
mix local.rebar --force
|
|
|
|
# Set environment
|
|
ENV LANG=en_US.UTF-8
|
|
ENV LANGUAGE=en_US.UTF-8
|
|
ENV LC_ALL=en_US.UTF-8
|
|
ENV ELIXIR_ERL_OPTIONS="+fnu"
|
|
|
|
WORKDIR /workspace
|
|
|
|
# Create workspace directory with proper permissions
|
|
RUN mkdir -p /workspace && chown -R $USERNAME:$USERNAME /workspace
|
|
|
|
# Keep container running
|
|
CMD ["sleep", "infinity"] |