38 lines
1.1 KiB
Makefile
38 lines
1.1 KiB
Makefile
|
alias dev := devcontainer
|
||
|
alias t := transaction
|
||
|
|
||
|
workdir := `pwd`
|
||
|
basename := `basename $(pwd)`
|
||
|
dockerfile := '.devcontainer/Dockerfile'
|
||
|
container := basename + '-devcontainer'
|
||
|
uid := `id -u`
|
||
|
gid := `id -g`
|
||
|
image := container + '-img'
|
||
|
ssh_key := env('HOME') + '/.ssh/id_rsa.pub'
|
||
|
|
||
|
# for use in dev container
|
||
|
build:
|
||
|
mkdir -p build
|
||
|
cd build && cmake .. && make
|
||
|
|
||
|
# test a transaction
|
||
|
transaction:
|
||
|
docker exec -u root -it {{container}} dnf reinstall libdnf5 --setopt=pluginpath=build/src \
|
||
|
--setopt=pluginconfpath=src -y
|
||
|
|
||
|
clean:
|
||
|
docker container stop {{container}} || :
|
||
|
docker container rm {{container}} || :
|
||
|
docker image rm {{image}} || :
|
||
|
rm -rf build
|
||
|
|
||
|
# (re)start Docker dev container
|
||
|
devcontainer:
|
||
|
(docker container ls --all | grep -q {{container}} && docker container stop {{container}} \
|
||
|
&& docker container rm {{container}}) || :
|
||
|
docker build --secret id=key,src={{ssh_key}} --build-arg UID={{uid}} --build-arg GID={{gid}} \
|
||
|
--build-arg BASENAME={{basename}} -t {{image}} -f {{dockerfile}} .
|
||
|
docker container create --name {{container}} -v {{workdir}}:/volume/{{basename}} \
|
||
|
-p 2222:2222 {{image}}
|
||
|
docker container start {{container}}
|