diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f4b1198 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +.git +.github diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..041b055 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM ubuntu:22.04 AS build +ARG USER_ID +ARG GROUP_ID +ARG USER_NAME +ARG GROUP_NAME + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update \ +&& apt-get install -y \ + build-essential \ + git \ + libssl-dev \ + libcurl4-openssl-dev \ + libsdl2-dev + +RUN groupadd -g ${GROUP_ID} ${GROUP_NAME} || true \ +; useradd -u ${USER_ID} -g ${GROUP_ID} -d ${HOME} -m -s /bin/bash ${USER_NAME} \ +; echo "${USER_NAME} ALL = (ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USER_NAME} \ +; install -m 700 -o ${USER_NAME} -g ${GROUP_NAME} -d /run/user/${USER_NAME} diff --git a/Makefile b/Makefile index c41e895..b595a68 100644 --- a/Makefile +++ b/Makefile @@ -186,5 +186,19 @@ install: $(PROGS) clean: rm -f *.o *.d *~ $(PROGS) $(LIBS) slirp/*.o slirp/*.d slirp/*~ +docker-image: + docker build \ + --build-arg "USER_ID=$(shell id -u)" \ + --build-arg "USER_NAME=$(shell id -un)" \ + --build-arg "GROUP_ID=$(shell id -g)" \ + --build-arg "GROUP_NAME=$(shell id -gn)" \ + -t tinyemu-build . + +docker-build: + docker run --rm -it \ + --user $(shell id -u):$(shell id -g) \ + -v .:/io tinyemu-build \ + /bin/bash -c "cd /io && make temu$(EXE)" + -include $(wildcard *.d) -include $(wildcard slirp/*.d)