diff --git a/.github/workflows/build_image.yml b/.github/workflows/build_image.yml new file mode 100644 index 0000000..2479082 --- /dev/null +++ b/.github/workflows/build_image.yml @@ -0,0 +1,16 @@ +name: Docker Image CI + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Build the Docker image + env: + DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASS: ${{ secrets.DOCKER_PASSWORD }} + run: | + docker login -u ${DOCKER_USER} -p ${DOCKER_PASS} + VERSION="${GITHUB_SHA:0:10}" COMMIT_SHA="$GITHUB_SHA" make publish diff --git a/Dockerfile b/Dockerfile index 2c3ccd9..4f4f665 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,26 @@ FROM debian:bullseye +ARG version=dev +ARG commit=dev +ARG created=never + +LABEL net.veldhousen.version=${version} +LABEL net.veldhousen.commit=${commit} +LABEL net.veldhousen.created=${created} + RUN apt-get update && apt-get install -y sudo apt-utils && apt-get clean RUN useradd -G sudo -U -u 1000 -m -s /bin/bash dev \ && echo 'dev:dev' | chpasswd \ && mkdir -p /home/dev/Projects \ + && rm -rf /home/dev/.bashrc \ && chown -R dev:dev /home/dev/ \ && echo "dev ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/dev_no_pass - USER 1000 WORKDIR /home/dev COPY . /home/dev/Projects/dotfiles -RUN rm -rf /home/dev/.bashrc \ - && /home/dev/Projects/dotfiles/install dev \ +RUN /home/dev/Projects/dotfiles/install dev \ && sudo rm -rf /tmp/* ENTRYPOINT ["/bin/bash", "--login"] diff --git a/makefile b/makefile index 80ad490..f5160e2 100644 --- a/makefile +++ b/makefile @@ -4,17 +4,26 @@ git submodule init && git submodule update build: ./tools - docker build -t adamveld12/dotfiles:latest -f ./Dockerfile . + docker build -t vdhsn/dotfiles:$${VERSION:-latest} \ + --build-arg version=$${VERSION} \ + --build-arg commit=$${COMMIT_SHA:-$${CIRCLE_SHA1}} \ + --build-arg initiator=$${INITIATOR:-$${CIRCLE_USERNAME}} \ + --build-arg created=$${CREATED_TS:-$$(date +%s)} \ + -f ./Dockerfile . + + +publish: build + docker push vdhsn/dotfiles:$${VERSION} build-test: ./tools - docker build -t adamveld12/dotfiles:deb-test -f ./Dockerfile.debian . + docker build -t vdhsn/dotfiles:deb-test -f ./Dockerfile.debian . deb-test: docker run -it --rm --name dotfiles \ -u $${USER_ID:-1000} \ -v $$PWD:/home/dotfiles/Projects/dotfiles:ro \ --workdir /home/dotfiles/Projects/dotfiles \ - adamveld12/dotfiles:deb-test + vdhsn/dotfiles:deb-test dev: @@ -22,5 +31,5 @@ dev: -u $${USER_ID:-1000} \ -v $$PWD:/home/dev/Projects/dotfiles:ro \ --workdir /home/dev/Projects/dotfiles \ - adamveld12/dotfiles:latest + vdhsn/dotfiles:$${VERSION:-latest}