Files
zkldi_Tachi/Dockerfile.dev
T
zk 593adb2717 feat: Dev Container (#1149)
* temporary dvctr

* start of work

* fix: timeouts in windows

* fish?

* feat: better, working stuff

* refactor: rename database-seeds to seeds/

* better

* fdsaf

* feat: don't let our container get owned by root

* fix: better user handling

* feat: falling asleep at my desk i yield to you what i have done

* feat: autoadminify

* docs: denote trickshot

* feat: open in browser on launch

* better seeds workings...

* fix: dont kill shell

* docs: mention dev/debs

* fix: whoops

* fix: make seeds load within the century

* feat: rest of the containerisation

* feat: new alias

* style: fix linter errors

* fix: bad call

* fix: better justfile
2024-08-17 15:01:40 +01:00

55 lines
1.7 KiB
Docker

# For use via `devcontainer.json`. The docker-compose-dev file sets some other
# important variables.
# we use ubuntu because 'just' isn't available on debian 13
# haha.. haha...
FROM ubuntu:24.10
WORKDIR /tachi
RUN apt update
# essentials
RUN apt install -y git npm locales sudo
# setup locales
# https://stackoverflow.com/questions/28405902/how-to-set-the-locale-inside-a-debian-ubuntu-docker-container
RUN echo 'en_US.UTF-8' > /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# nodeisms
RUN npm install --silent -g pnpm@8.15.6
# docs pythonisms
RUN apt install -y python-is-python3 pip mkdocs mkdocs-material
# https://github.com/python-babel/babel/issues/990
# it wouldn't be python without needing absurd global state manipulation to fix
# an incoherent error message
RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime
# Fix locale issue perl repeatedly complains about
RUN echo "LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8" > /etc/default/locale
# nice to haves
RUN apt install -y gh fish just fzf curl wget parallel neovim fd-find bat
# `fd` is called `find-fd` on ubuntu. Awesome.
RUN ln -s $(which fdfind) /usr/bin/fd
# rename ubuntu user to tachi and give them sudo
RUN usermod -l tachi ubuntu && \
usermod -d /home/tachi -m tachi && \
echo "tachi ALL = NOPASSWD : ALL" >> /etc/sudoers
# Docker volumes are mounted as root UNLESS the folder already exists inside the host
# and has non-root ownership. This is the only way to declare a volume in docker has
# non-root ownership. Unbelievably obscure.
RUN mkdir node_modules && \
mkdir .pnpm-store && \
chown tachi:1000 node_modules .pnpm-store
# keep container alive indefinitely
CMD ["/bin/fish"]