diff --git a/.gitea/workflows/alpine-winter.yaml b/.gitea/workflows/alpine-winter.yaml new file mode 100644 index 0000000..e85dd86 --- /dev/null +++ b/.gitea/workflows/alpine-winter.yaml @@ -0,0 +1,63 @@ +name: Build and Push Alpine PHP 8.3 Image +on: + push: + branches: + - master + +jobs: + build: + name: Build and push image + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to Docker Winter Access Git Registry + uses: docker/login-action@v3 + with: + registry: git.winteraccess.id + username: aditya.prima + password: ${{ secrets.PATOKEN }} + - name: Build and push 14.21.3 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.alpine + build-args: | + ALPINE_VERSION=3.14 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:14-alpine + - name: Build and push 16.20.2 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.alpine + build-args: | + ALPINE_VERSION=3.16 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:16-alpine + - name: Build and push 18.19.1 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.alpine + build-args: | + ALPINE_VERSION=3.18 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:18-alpine + - name: Build and push 20.11.1 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.alpine + build-args: | + ALPINE_VERSION=3.19 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:20-alpine + git.winteraccess.id/${{ gitea.repository }}:latest-alpine + git.winteraccess.id/${{ gitea.repository }}:alpine \ No newline at end of file diff --git a/.gitea/workflows/ubuntu-winter.yaml b/.gitea/workflows/ubuntu-winter.yaml new file mode 100644 index 0000000..29b5502 --- /dev/null +++ b/.gitea/workflows/ubuntu-winter.yaml @@ -0,0 +1,67 @@ +name: Build and Push Ubuntu PHP 8.3 Image +on: + push: + branches: + - master + +jobs: + build: + name: Build and push image + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Login to Docker Winter Access Git Registry + uses: docker/login-action@v3 + with: + registry: git.winteraccess.id + username: aditya.prima + password: ${{ secrets.PATOKEN }} + - name: Build and push 14.21.3 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.ubuntu + build-args: | + NODE_VERSION=14.21.3 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:14-ubuntu + git.winteraccess.id/${{ gitea.repository }}:14 + - name: Build and push 16.20.2 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.ubuntu + build-args: | + NODE_VERSION=16.20.2 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:16-ubuntu + git.winteraccess.id/${{ gitea.repository }}:16 + - name: Build and push 18.19.1 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.ubuntu + build-args: | + NODE_VERSION=18.19.1 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:18-ubuntu + git.winteraccess.id/${{ gitea.repository }}:18 + - name: Build and push 20.11.1 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.ubuntu + build-args: | + NODE_VERSION=20.11.1 + push: true + tags: | + git.winteraccess.id/${{ gitea.repository }}:20-ubuntu + git.winteraccess.id/${{ gitea.repository }}:20 + git.winteraccess.id/${{ gitea.repository }}:latest-ubuntu + git.winteraccess.id/${{ gitea.repository }}:latest diff --git a/.gitlab-ci.cifo.yml b/.gitlab-ci.cifo.yml deleted file mode 100644 index 98b0c43..0000000 --- a/.gitlab-ci.cifo.yml +++ /dev/null @@ -1,56 +0,0 @@ -stages: - - build - -.build: - image: docker:20.10.16 - services: - - name: docker:20.10.16-dind - alias: docker - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_CERTDIR: "/certs" - DOCKER_TLS_VERIFY: 1 - DOCKER_CERT_PATH: "/certs/client" - DOCKER_DRIVER: "overlay" - before_script: - - "docker login ${CI_REGISTRY} -u gitlab-ci-token -p ${CI_JOB_TOKEN}" - after_script: - - "docker logout ${CI_REGISTRY}" - -build_cifo_20: - stage: build - extends: .build - only: - - master - script: - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_ubuntu --build-arg="UBUNTU_VERSION=jammy" --build-arg="REGISTRY_URL=registry.cifo.co.id/docker" --build-arg="NODE_VERSION=20.10.0" -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:20-ubuntu -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:20 . - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_alpine --build-arg="ALPINE_VERSION=3.19" --build-arg="REGISTRY_URL=registry.cifo.co.id/docker" -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:20-alpine . - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:20 - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:20-ubuntu - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:20-alpine - - -build_cifo_18: - stage: build - extends: .build - only: - - master - script: - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_ubuntu --build-arg="UBUNTU_VERSION=jammy" --build-arg="REGISTRY_URL=registry.cifo.co.id/docker" --build-arg="NODE_VERSION=18.19.0" -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:18-ubuntu -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:18 . - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_alpine --build-arg="ALPINE_VERSION=3.18" --build-arg="REGISTRY_URL=registry.cifo.co.id/docker" -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:18-alpine . - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:18 - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:18-ubuntu - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:18-alpine - -build_cifo_16: - stage: build - extends: .build - only: - - master - script: - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_ubuntu --build-arg="UBUNTU_VERSION=jammy" --build-arg="REGISTRY_URL=registry.cifo.co.id/docker" --build-arg="NODE_VERSION=16.20.2" -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:16-ubuntu -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:16 . - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_alpine --build-arg="ALPINE_VERSION=3.16" --build-arg="REGISTRY_URL=registry.cifo.co.id/docker" -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:16-alpine . - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:16 - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:16-ubuntu - - docker image push ${CI_REGISTRY}/${CI_PROJECT_PATH}:16-alpine diff --git a/.gitlab-ci.dockerio.yml b/.gitlab-ci.dockerio.yml deleted file mode 100644 index 648bd9b..0000000 --- a/.gitlab-ci.dockerio.yml +++ /dev/null @@ -1,56 +0,0 @@ -stages: - - build - -.build: - image: docker:20.10.16 - services: - - name: docker:20.10.16-dind - alias: docker - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_CERTDIR: "/certs" - DOCKER_TLS_VERIFY: 1 - DOCKER_CERT_PATH: "/certs/client" - DOCKER_DRIVER: "overlay" - before_script: - - "docker login -u ${HUB_USERNAME} -p ${HUB_TOKEN}" - after_script: - - "docker logout" - -build_dockerio_20: - stage: build - extends: .build - only: - - master - script: - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_ubuntu --build-arg="UBUNTU_VERSION=jammy" --build-arg="NODE_VERSION=20.10.0" -t ${HUB_IMAGE_PATH}:latest -t ${HUB_IMAGE_PATH}:20-ubuntu -t ${HUB_IMAGE_PATH}:20 . - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_alpine --build-arg="ALPINE_VERSION=3.19" -t ${HUB_IMAGE_PATH}:20-alpine . - - docker image push ${HUB_IMAGE_PATH}:latest - - docker image push ${HUB_IMAGE_PATH}:20 - - docker image push ${HUB_IMAGE_PATH}:20-ubuntu - - docker image push ${HUB_IMAGE_PATH}:20-alpine - - -build_dockerio_18: - stage: build - extends: .build - only: - - master - script: - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_ubuntu --build-arg="UBUNTU_VERSION=jammy" --build-arg="NODE_VERSION=18.19.0" -t ${HUB_IMAGE_PATH}:18-ubuntu -t ${HUB_IMAGE_PATH}:18 . - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_alpine --build-arg="ALPINE_VERSION=3.18" -t ${HUB_IMAGE_PATH}:18-alpine . - - docker image push ${HUB_IMAGE_PATH}:18 - - docker image push ${HUB_IMAGE_PATH}:18-ubuntu - - docker image push ${HUB_IMAGE_PATH}:18-alpine - -build_dockerio_16: - stage: build - extends: .build - only: - - master - script: - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_ubuntu --build-arg="UBUNTU_VERSION=jammy" --build-arg="NODE_VERSION=16.20.2" -t ${HUB_IMAGE_PATH}:16-ubuntu -t ${HUB_IMAGE_PATH}:16 . - - DOCKER_BUILDKIT=1 docker image build -f Dockerfile_alpine --build-arg="ALPINE_VERSION=3.16" -t ${HUB_IMAGE_PATH}:16-alpine . - - docker image push ${HUB_IMAGE_PATH}:16 - - docker image push ${HUB_IMAGE_PATH}:16-ubuntu - - docker image push ${HUB_IMAGE_PATH}:16-alpine diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index a4586fe..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,12 +0,0 @@ -stages: - - triggers - -build_cifo: - stage: triggers - trigger: - include: .gitlab-ci.cifo.yml - -build_dockerio: - stage: triggers - trigger: - include: .gitlab-ci.dockerio.yml diff --git a/Dockerfile.alpine b/Dockerfile.alpine new file mode 100644 index 0000000..d77060f --- /dev/null +++ b/Dockerfile.alpine @@ -0,0 +1,40 @@ +# 14.21.3 = 3.14 +# 16.20.2 = 3.16 +# 18.19.1 = 3.18 +# 20.11.1 = 3.19 +ARG REGISTRY_URL=git.winteraccess.id/docker +ARG ALPINE_VERSION=3.19 + +FROM ${REGISTRY_URL}/alpine:${ALPINE_VERSION} +LABEL maintainer=" aprimediet@gmail.com" + +WORKDIR / + +# SET CACHE DIR +ENV NODE_DIR /usr/local/share/nodejs +ENV NPM_CACHE_DIR ${NODE_DIR}/.npm-cache +ENV YARN_CACHE_DIR ${NODE_DIR}/.yarn-cache + +# INSTALL WGET AND REQUIRED BUILD TOOLS +RUN --mount=type=cache,target=/var/cache/apk \ + apk update && apk upgrade && apk add \ + nodejs nodejs-dev npm + +# SET NPM GLOBAL CACHE +RUN npm -g config set cache ${NPM_CACHE_DIR} && \ + npm config set cache ${NPM_CACHE_DIR} + +# INSTALL YARN +RUN --mount=type=cache,target=${NPM_CACHE_DIR} \ + npm i -g yarn + +# CREATE YARN CACHE DIR +RUN mkdir -p ${YARN_CACHE_DIR} + +# SET YARN CACHE DIR +RUN yarn config set cache-folder ${YARN_CACHE_DIR} + +# CLEAR CACHE +RUN rm -rf /var/cache/apk/* && \ + npm cache clean --force && \ + npm -g cache clean --force \ No newline at end of file diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu new file mode 100644 index 0000000..29c174a --- /dev/null +++ b/Dockerfile.ubuntu @@ -0,0 +1,51 @@ +ARG REGISTRY_URL=git.winteraccess.id/docker +ARG UBUNTU_VERSION=jammy + +FROM ${REGISTRY_URL}/ubuntu:${UBUNTU_VERSION} +LABEL maintainer=" aprimediet@gmail.com" + +ARG NVM_VERSION=0.39.7 +ARG NODE_VERSION=20.11.1 + +WORKDIR / + +# CREATE NVM_DIR +ENV NVM_DIR /usr/local/share/nvm +ENV NPM_CACHE_DIR ${NVM_DIR}/.npm-cache +ENV YARN_CACHE_DIR ${NVM_DIR}/.yarn-cache +RUN mkdir -p ${NVM_DIR} + +# UPGRADE PACKAGES FIRST +RUN --mount=type=cache,target=/var/cache/apt/archives \ + apt -y update && apt -y upgrade + +# GET LATEST NVM +ADD https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh /tmp + +# INSTALL NVM AND DESIGNATED NODE VERSION +RUN bash /tmp/install.sh && \ + . $NVM_DIR/nvm.sh && \ + nvm install v${NODE_VERSION} && \ + nvm alias default v${NODE_VERSION} && \ + nvm use default + +ENV NODE_PATH $NVM_DIR/versions/node/v${NODE_VERSION}/lib/node_modules +ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin + +# SET NPM GLOBAL CACHE +RUN npm -g config set cache ${NPM_CACHE_DIR} && \ + npm config set cache ${NPM_CACHE_DIR} + +# INSTALL YARN +RUN --mount=type=cache,target=${NPM_CACHE_DIR} \ + npm i -g yarn + +# CREATE YARN CACHE DIR +RUN mkdir -p ${YARN_CACHE_DIR} + +# SET YARN CACHE DIR +RUN yarn config set cache-folder ${YARN_CACHE_DIR} + +# CLEAR APT CACHE +RUN apt -y clean && rm -rf /tmp/* && \ + npm cache clean --force && npm -g cache clean --force diff --git a/Dockerfile_alpine b/Dockerfile_alpine deleted file mode 100644 index 812b26d..0000000 --- a/Dockerfile_alpine +++ /dev/null @@ -1,19 +0,0 @@ -# 14.21.3 = 3.14 -# 16.20.2 = 3.16 -# 18.19.0 = 3.18 -ARG REGISTRY_URL=aprimediet -ARG ALPINE_VERSION=3.18 - -FROM ${REGISTRY_URL}/alpine:${ALPINE_VERSION} -LABEL maintainer=" aprimediet@gmail.com" - -# INSTALL WGET AND REQUIRED BUILD TOOLS -RUN --mount=type=cache,target=/var/cache/apk \ - apk add --update \ - nodejs nodejs-dev npm - -# INSTALL YARN -RUN npm i -g yarn - -# CLEAR CACHE -RUN rm -rf /var/cache/apk/* \ No newline at end of file diff --git a/Dockerfile_ubuntu b/Dockerfile_ubuntu deleted file mode 100644 index 20b7cd4..0000000 --- a/Dockerfile_ubuntu +++ /dev/null @@ -1,33 +0,0 @@ -ARG UBUNTU_VERSION=jammy - -FROM aprimediet/ubuntu:${UBUNTU_VERSION} -LABEL maintainer=" aprimediet@gmail.com" - -ARG NVM_VERSION=0.39.5 -ARG NODE_VERSION=18.19.0 - -ENV HOME /root -ENV NVM_DIR $HOME/.nvm - -# UPGRADE PACKAGES FIRST -RUN --mount=type=cache,target=/var/cache/apt/archives \ - apt -y update && apt -y upgrade - -# GET LATEST NVM -ADD https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh /tmp - -# INSTALL NVM AND DESIGNATED NODE VERSION -RUN bash /tmp/install.sh && \ - . $NVM_DIR/nvm.sh && \ - nvm install v${NODE_VERSION} && \ - nvm alias default v${NODE_VERSION} && \ - nvm use default - -ENV NODE_PATH $NVM_DIR/versions/node/v${NODE_VERSION}/lib/node_modules -ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin - -# INSTALL YARN -RUN npm i -g yarn - -# CLEAR APT CACHE -RUN apt -y clean && rm -f /tmp/*