From dcc52c38d3c86bceab9b0dd5b6213baed6f08711 Mon Sep 17 00:00:00 2001 From: Shaun Setlock Date: Tue, 6 May 2025 20:30:52 -0400 Subject: [PATCH] Moving container to its own directory; not just a nvim thing. Added a nightly workflow. Switched to tags trigger. --- ...iner_docker_build.yml => docker_build.yml} | 12 ++++--- .gitea/workflows/nightly_docker_build.yml | 35 +++++++++++++++++++ nvim/tools/docker-compose.yml | 9 ----- {nvim/tools => tools}/Dockerfile | 19 +++++----- tools/docker-compose.yml | 8 +++++ 5 files changed, 60 insertions(+), 23 deletions(-) rename .gitea/workflows/{neovim_container_docker_build.yml => docker_build.yml} (80%) create mode 100644 .gitea/workflows/nightly_docker_build.yml delete mode 100644 nvim/tools/docker-compose.yml rename {nvim/tools => tools}/Dockerfile (76%) create mode 100644 tools/docker-compose.yml diff --git a/.gitea/workflows/neovim_container_docker_build.yml b/.gitea/workflows/docker_build.yml similarity index 80% rename from .gitea/workflows/neovim_container_docker_build.yml rename to .gitea/workflows/docker_build.yml index 246ba0f..9df5e15 100644 --- a/.gitea/workflows/neovim_container_docker_build.yml +++ b/.gitea/workflows/docker_build.yml @@ -3,8 +3,10 @@ name: Build and Push Docker Image on: push: - branches: - - master + # branches: + # - master + tags: + - "v*" workflow_dispatch: @@ -34,9 +36,9 @@ jobs: - name: Build and Push Docker Image uses: docker/build-push-action@v5 with: - context: ./nvim/tools + context: ./tools push: true platforms: linux/amd64 tags: | - gitea.setlock.net/shaun/neovim:latest - gitea.setlock.net/shaun/neovim:${{ env.GIT_TAG }} + gitea.setlock.net/shaun/dev-container:latest + gitea.setlock.net/shaun/dev-container:${{ env.GIT_TAG }} diff --git a/.gitea/workflows/nightly_docker_build.yml b/.gitea/workflows/nightly_docker_build.yml new file mode 100644 index 0000000..04340bf --- /dev/null +++ b/.gitea/workflows/nightly_docker_build.yml @@ -0,0 +1,35 @@ +# .gitea/workflows/docker-build-push.yml +name: Build and Push Docker Image + +on: + schedule: + - cron: "30 20 * * *" + + workflow_dispatch: + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: gitea.setlock.net + username: ${{ secrets.USER }} + password: ${{ secrets.TOKEN }} + + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: ./tools + push: true + platforms: linux/amd64 + tags: | + gitea.setlock.net/shaun/dev-container:nightly diff --git a/nvim/tools/docker-compose.yml b/nvim/tools/docker-compose.yml deleted file mode 100644 index 4004da8..0000000 --- a/nvim/tools/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: "3" -services: - nv: - container_name: nv - image: shaun/neovim:latest - user: "1000:1000" - restart: unless-stopped - volumes: - - ~/code:/root/workspace diff --git a/nvim/tools/Dockerfile b/tools/Dockerfile similarity index 76% rename from nvim/tools/Dockerfile rename to tools/Dockerfile index 55cf30e..ac2060a 100644 --- a/nvim/tools/Dockerfile +++ b/tools/Dockerfile @@ -16,9 +16,9 @@ RUN useradd -m -u 1000 -s /usr/bin/fish shaun # Install required software RUN apt-get update && apt-get -y install \ - curl fzf ripgrep tree git xclip python3 python3-pip python3-venv nodejs npm \ - tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ \ - pkg-config zip unzip fish tmux + curl fzf ripgrep tree git xclip python3 python3-pip python3-venv nodejs npm \ + tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ \ + pkg-config zip unzip fish tmux # Cooperate Neovim with Python 3. RUN python3 -m pip install --break-system-packages --root-user-action ignore pynvim @@ -28,9 +28,9 @@ RUN npm i -g neovim # Install Neovim from source. RUN mkdir -p /tmp/neovim-src && \ - git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \ - cd /tmp/neovim-src && make -j$(nproc) && make install && \ - rm -rf /tmp/neovim-src + git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \ + cd /tmp/neovim-src && make -j$(nproc) && make install && \ + rm -rf /tmp/neovim-src # Clone configuration files. USER shaun @@ -48,7 +48,7 @@ RUN ln -s /home/shaun/dotfiles/tmux /home/shaun/.config # Install tmux plugin manager. RUN git clone https://github.com/tmux-plugins/tpm /home/shaun/.config/tmux/plugins/tpm && \ - /home/shaun/.config/tmux/plugins/tpm/scripts/install_plugins.sh + /home/shaun/.config/tmux/plugins/tpm/scripts/install_plugins.sh # Get oh-my-fish and bob-the-fish installed. RUN curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install @@ -63,11 +63,12 @@ USER root RUN usermod --shell /usr/bin/fish shaun # Set workspace directory -RUN mkdir -p /workspace && chown shaun:shaun /workspace -WORKDIR /workspace +RUN mkdir -p /workspace +RUN chown -R shaun:shaun /workspace # Switch to non-root user USER shaun +WORKDIR /home/shaun # Avoid container exit. CMD ["tail", "-f", "/dev/null"] diff --git a/tools/docker-compose.yml b/tools/docker-compose.yml new file mode 100644 index 0000000..d261593 --- /dev/null +++ b/tools/docker-compose.yml @@ -0,0 +1,8 @@ +version: "3" +services: + mydev: + container_name: mydev + image: gitea.setlock.net/shaun/dev-container:latest + restart: unless-stopped + volumes: + - /home/shaun:/workspace