docker stuff

This commit is contained in:
Daylin Morgan 2022-09-02 16:05:16 -05:00
parent 149f441bbe
commit 65593fc479
4 changed files with 104 additions and 0 deletions

View file

@ -1,9 +1,43 @@
.PHONY: lint lint.py lint.sh .PHONY: lint lint.py lint.sh
## lint | lint.*
lint: lint.py lint.sh lint: lint.py lint.sh
## lint.python | lint python files
lint.python: lint.python:
black $(shell find -type f -name "*.py") black $(shell find -type f -name "*.py")
## lint.sh | lint shell files
lint.sh: lint.sh:
shfmt -s -w $(shell shfmt -f .) shfmt -s -w $(shell shfmt -f .)
.PHONY: $(addprefix d-,b r build run)
## db, d-build | build docker image
db d-build:
docker build -f docker/Dockerfile -t dots .
## dr, d-run | run docker image
dr d-run:
docker run --rm -it dots
.PHONY: dr-keep
dr-keep:
docker run -it dots
.DEFAULT_GOAL := help
# ## h, help | show this help
# .PHONY: help h
# help h: Makefile
# @awk -v fill=$(shell sed -n 's/^## \(.*\) | .*/\1/p' $< | wc -L)\
# 'match($$0,/^## (.*) \|/,name) && match($$0,/\| (.*)$$/,help)\
# {printf "\033[1;93m%*s\033[0m | \033[30m%s\033[0m\n",\
# fill,name[1],help[1];} match($$0,/^### (.*)/,str) \
# {printf "%*s \033[30m%s\033[0m\n",fill," ",str[1];}' $<
GOAL_COLOR=b_magenta
HELP_SEP= >>
-include .task.mk
ifeq "help" "$(filter help,$(MAKECMDGOALS))"
.task.mk:
curl https://raw.githubusercontent.com/daylinmorgan/task.mk/main/task.mk -o .task.mk
endif

42
docker/Dockerfile Normal file
View file

@ -0,0 +1,42 @@
FROM debian:bookworm-20220822-slim
ENV TERM='xterm-256color' \
HOME='/root'
COPY ./docker/install_packages.sh /usr/bin/install_packages
RUN install_packages \
ca-certificates \
locales \
tmux \
curl \
gawk \
zsh \
vim \
git \
neovim
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
locale-gen
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
WORKDIR /root
RUN sh -c "$(curl -fsLS https://chezmoi.io/get)"
COPY . .dotfiles
RUN ./bin/chezmoi init --apply -S ~/.dotfiles
ENV DOTFILES_DIR="$HOME/.dotfiles" \
PATH="$PATH:$HOME/bin:$HOME/.dotfiles/bin"
# setup eget for tools script
RUN curl https://zyedidia.github.io/eget.sh | sh && mv ./eget ./bin/eget
# use eget to fetch yq and some needed tools
RUN tools $(cat .dotfiles/docker/tools.txt)
# get shell extensions
RUN sheldon -q --config-file ~/.config/sheldon/plugins.toml lock
CMD ["zsh"]

24
docker/install_packages.sh Executable file
View file

@ -0,0 +1,24 @@
#!/bin/sh
set -e
set -u
export DEBIAN_FRONTEND=noninteractive
n=0
max=2
until [ $n -gt $max ]; do
set +e
(
apt-get update -qq &&
apt-get install -y --no-install-recommends "$@"
)
CODE=$?
set -e
if [ $CODE -eq 0 ]; then
break
fi
if [ $n -eq $max ]; then
exit $CODE
fi
echo "apt failed, retrying"
n=$((n + 1))
done
rm -r /var/lib/apt/lists /var/cache/apt/archives

4
docker/tools.txt Normal file
View file

@ -0,0 +1,4 @@
starship
sheldon
ripgrep
lsd