added docker build files
This commit is contained in:
parent
79dcd973c7
commit
56ffe2c3d1
49
.build/ci-helper
Executable file
49
.build/ci-helper
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
if [ "$CI" = "true" ]; then
|
||||
echo "Running in CI environment, skipping variable fetching..."
|
||||
else
|
||||
# Remove 'git@gitlab.com:' and '.git' and Extract namespace and project name
|
||||
GIT_REMOTE_URL=$(git config --get remote.origin.url)
|
||||
GITLAB_PATH=$(echo "$GIT_REMOTE_URL" | sed -e 's/^git@git.shihaam.dev://' -e 's/\.git$//')
|
||||
CI_PROJECT_NAMESPACE=$(echo "$GITLAB_PATH" | awk -F/ '{OFS="/"; $NF=""; print $0}' | sed 's:/$::')
|
||||
CI_PROJECT_NAME=$(basename "$GITLAB_PATH")
|
||||
# Set the registry image path
|
||||
|
||||
CI_REGISTRY_IMAGE="git.shihaam.dev/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME"
|
||||
|
||||
# Other variables
|
||||
CI_COMMIT_SHORT_SHA=$(git rev-parse HEAD | cut -c1-8)
|
||||
CI_COMMIT_SHA=$(git rev-parse HEAD)
|
||||
CI_COMMIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
fi
|
||||
|
||||
CI_COMMIT_BRANCH=$(echo $CI_COMMIT_BRANCH | sed 's/\//-/g') # sanitize branch name
|
||||
|
||||
export CI_COMMIT_SHORT_SHA
|
||||
export CI_COMMIT_SHA
|
||||
export CI_COMMIT_BRANCH
|
||||
export CI_REGISTRY_IMAGE
|
||||
|
||||
|
||||
echo "Commit hash: $CI_COMMIT_SHA"
|
||||
echo "Branch: $CI_COMMIT_BRANCH"
|
||||
echo "Registry image: $CI_REGISTRY_IMAGE"
|
||||
|
||||
if [ "$1" = "push" ]; then
|
||||
docker compose push
|
||||
if [[ "$CI_COMMIT_BRANCH" == "master" || "$CI_COMMIT_BRANCH" == "main" ]]; then
|
||||
docker tag $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/fpm:latest
|
||||
docker tag $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/nginx:latest
|
||||
docker push $CI_REGISTRY_IMAGE/fpm:latest
|
||||
docker push $CI_REGISTRY_IMAGE/nginx:latest
|
||||
elif [[ "$CI_COMMIT_BRANCH" == "staging" ]]; then
|
||||
docker tag $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/fpm:staging
|
||||
docker tag $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/nginx:staging
|
||||
docker push $CI_REGISTRY_IMAGE/fpm:staging
|
||||
docker push $CI_REGISTRY_IMAGE/nginx:staging
|
||||
fi
|
||||
else
|
||||
docker compose $@
|
||||
fi
|
21
.build/compose.yml
Normal file
21
.build/compose.yml
Normal file
@ -0,0 +1,21 @@
|
||||
services:
|
||||
fpm:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: .build/fpm.Dockerfile
|
||||
args:
|
||||
CI_COMMIT_SHORT_SHA: ${CI_COMMIT_SHORT_SHA}
|
||||
CI_COMMIT_SHA: ${CI_COMMIT_SHA}
|
||||
CI_COMMIT_BRANCH: ${CI_COMMIT_BRANCH}
|
||||
hostname: fpm
|
||||
image: $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
|
||||
nginx:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: nginx.Dockerfile
|
||||
args:
|
||||
CI_COMMIT_SHORT_SHA: ${CI_COMMIT_SHORT_SHA}
|
||||
CI_COMMIT_SHA: ${CI_COMMIT_SHA}
|
||||
CI_COMMIT_BRANCH: ${CI_COMMIT_BRANCH}
|
||||
hostname: nginx
|
||||
image: $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
|
36
.build/fpm.Dockerfile
Normal file
36
.build/fpm.Dockerfile
Normal file
@ -0,0 +1,36 @@
|
||||
FROM composer:2.7.9 AS composer
|
||||
|
||||
FROM git.shihaam.dev/dockerfiles/php-fpm:8.2 AS composerinstall
|
||||
|
||||
WORKDIR /var/www/html
|
||||
COPY .. /var/www/html
|
||||
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
||||
|
||||
RUN --mount=type=cache,target=/root/.composer/cache \
|
||||
composer install --no-interaction --no-dev --optimize-autoloader
|
||||
|
||||
FROM git.shihaam.dev/dockerfiles/php-fpm:8.2
|
||||
|
||||
# Use bash as the default shell
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
WORKDIR /var/www/html
|
||||
COPY --from=composerinstall /var/www/html /var/www/html/
|
||||
|
||||
# Set the git envs
|
||||
ARG CI_COMMIT_SHORT_SHA
|
||||
ARG CI_COMMIT_SHA
|
||||
ARG CI_COMMIT_BRANCH
|
||||
ENV CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA
|
||||
ENV CI_COMMIT_SHA=$CI_COMMIT_SHA
|
||||
ENV CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH
|
||||
|
||||
RUN chown -R www-data:www-data storage/ \
|
||||
&& chmod -R ug+rw storage \
|
||||
&& chmod -R ug+x storage/framework storage/logs \
|
||||
&& chmod -R ug+rw bootstrap/cache \
|
||||
&& chmod -R ug+x bootstrap/cache
|
||||
RUN php artisan storage:link
|
||||
|
||||
# expose public dir for nginx to serve static files
|
||||
VOLUME /var/www/html/public
|
10
.build/nginx.Dockerfile
Normal file
10
.build/nginx.Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM git.shihaam.dev/dockerfiles/nginx-fpm:latest
|
||||
|
||||
|
||||
# Set the git envs
|
||||
ARG CI_COMMIT_SHORT_SHA
|
||||
ARG CI_COMMIT_SHA
|
||||
ARG CI_COMMIT_BRANCH
|
||||
ENV CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA
|
||||
ENV CI_COMMIT_SHA=$CI_COMMIT_SHA
|
||||
ENV CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH
|
32
compose.yml
Normal file
32
compose.yml
Normal file
@ -0,0 +1,32 @@
|
||||
services:
|
||||
fpm:
|
||||
hostname: fpm
|
||||
image: git.shihaam.dev/shihaam/akaunting/fpm
|
||||
volumes:
|
||||
- ./:/var/www/html/
|
||||
nginx:
|
||||
hostname: nginx
|
||||
image: git.shihaam.dev/shihaam/akaunting/nginx
|
||||
volumes_from:
|
||||
- fpm
|
||||
ports:
|
||||
- 9000:80
|
||||
# composer:
|
||||
# hostname: composer
|
||||
# image: composer:2.7.9
|
||||
# volumes:
|
||||
# - ./:/var/www/html/
|
||||
# working_dir: /var/www/html
|
||||
mariadb:
|
||||
image: mariadb:11.5.2
|
||||
hostname: mariadb
|
||||
restart: always
|
||||
environment:
|
||||
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
||||
- MYSQL_USER=user
|
||||
- MYSQL_PASSWORD=password
|
||||
- MYSQL_DATABASE=database
|
||||
volumes:
|
||||
- db:/var/lib/mysql
|
||||
volumes:
|
||||
db:
|
Loading…
x
Reference in New Issue
Block a user