diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..ad14803 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.git +.github +README.md diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..41127c0 --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,39 @@ +name: release + +on: + schedule: + - cron: 0 0 1 * * + push: + branches: + - main + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up QEMU (para emular otras arquitecturas) + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_REGISTRY_USER }} + password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} + + - name: Build and push multi-arch image + uses: docker/build-push-action@v5 + with: + context: . + push: true + platforms: | + linux/amd64 + linux/386 + tags: docker.io/${{ secrets.DOCKER_REGISTRY_USER }}/base-node:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..da5b7e6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM docker.io/rusian/hyperbola:latest + +ENV NVM_DIR=/root/.nvm +ENV NODE_VERSION=lts/* + +RUN pacman -Syu --noconfirm --noprogressbar \ + && pacman -S --noconfirm --noprogressbar \ + base-devel \ + curl \ + ca-certificates \ + git \ + bash \ + && pacman -Scc --noconfirm \ + && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash \ + && . "$NVM_DIR/nvm.sh" \ + && nvm install $NODE_VERSION \ + && nvm alias default $NODE_VERSION \ + && nvm use default \ + && npm install -g npm \ + && ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/node" /usr/bin/node \ + && ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/npm" /usr/bin/npm \ + && ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/npx" /usr/bin/npx + +SHELL ["/bin/bash", "-c"] + +CMD ["node", "--version"]