Updated dockerfiles & gitlab ci

This commit is contained in:
Netkas 2023-10-07 04:35:46 -04:00
parent bf980be6e7
commit fe8f178b6f
No known key found for this signature in database
GPG key ID: 5DAF58535614062B
7 changed files with 191 additions and 49 deletions

71
old_docker/Dockerfile Normal file
View file

@ -0,0 +1,71 @@
# Copyright 2022-2023 Nosial - All Rights Reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# ncc in Docker
#
# This image is intended to be used as a base for projects using ncc.
#
#
# Builder stage: downloads necessary files and serves them on a silver platter.
#
FROM php:8.2-fpm AS builder
WORKDIR /tmp
# Install some stuff the default image doesn't come with
RUN apt update -yqq; \
apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
# Download phive and install phab
RUN wget -O phive.phar https://phar.io/releases/phive.phar; \
wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc; \
gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79; \
gpg --verify phive.phar.asc phive.phar; \
rm phive.phar.asc; chmod +x phive.phar; ./phive.phar install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
# Copy the local repository to the image
COPY . /tmp/ncc
# Download the latest version of ncc (Nosial Code Compiler)
RUN cd /tmp/ncc && make redist
#
# Main stage: Copies downloaded files and installs all
#
FROM php:8.2-fpm-alpine
# Add extensions
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
# Copy downloaded files
COPY --from=builder /tmp/. .
# Install extensions required to run ncc
RUN install-php-extensions mbstring \
ctype \
common; \
# Add git and tar
apk add git tar; \
# Install phive, phab and ncc; create workdir
chmod +x phive.phar; \
mv phive.phar /usr/local/bin/phive; \
phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C; \
cd ncc; php build/src/INSTALL --auto; cd ..; rm -rf ncc; \
mkdir /app
WORKDIR /app

View file

@ -0,0 +1,74 @@
# Copyright 2022-2023 Nosial - All Rights Reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# ncc in Docker
#
# This image is intended to be used as a base for projects using ncc.
#
#
# Builder stage: downloads necessary files and serves them on a silver platter.
#
FROM php:8.2-fpm AS builder
WORKDIR /tmp
# Install some stuff the default image doesn't come with
RUN apt update -yqq; \
apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
# Download phive and install phab
RUN wget -O phive.phar https://phar.io/releases/phive.phar; \
wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc; \
gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79; \
gpg --verify phive.phar.asc phive.phar; \
rm phive.phar.asc; chmod +x phive.phar; ./phive.phar install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C
# Copy the local repository to the image
COPY . /tmp/ncc
# Download the latest version of ncc (Nosial Code Compiler)
RUN cd /tmp/ncc && make redist
#
# Main stage: Copies downloaded files and installs all
#
FROM php:8.2-fpm
# Add extensions
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
# Copy downloaded files
COPY --from=builder /tmp/. .
# Install some stuff the default image doesn't come with
RUN apt update -yqq; \
apt install git libpq-dev libzip-dev zip make wget gnupg -yqq
# Install extensions required to run ncc
RUN install-php-extensions mbstring \
ctype \
common; \
# Add git
apt install -y git; \
# Install phive, phab and ncc; create workdir
chmod +x phive.phar; \
mv phive.phar /usr/local/bin/phive; \
phive install phpab --global --trust-gpg-keys 0x2A8299CE842DD38C; \
cd ncc; php build/src/INSTALL --auto; cd ..; rm -rf ncc; \
mkdir /app
WORKDIR /app

2
old_docker/note.txt Normal file
View file

@ -0,0 +1,2 @@
These are the old dockerfiles for ncc, they are no longer used. The new dockerfiles are in the root of the repository.
These files are kept for reference and may be removed in the future.