Dockerfile для проекта с php c gitlab-runner
Пытаюсь сделать контейнер для проекта с след необходимыми библиотеками
dom curl json
Но каждый раз при сборке контейнера job'a жалется на отсутсвие этих модулей, понимаю, что делаю что-то не так, а что не понимаю Dockerfile:
FROM ubuntu:latest
FROM composer:2.1.12
FROM node:14.15.0-stretch
FROM php:8.1-cli
#composer and php
RUN apt update && apt install -y software-properties-common libxml2-dev libcurl4-openssl-dev
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash && \
apt update && apt install -y nodejs
RUN docker-php-ext-install dom curl json
# COPY /etc/php/8.1/mods-available/ /usr/local/etc/php/conf.d
# RUN curl -sS https://getcomposer.org/installer | php && \
# mv composer.phar /usr/local/bin/composer && \
# chmod +x /usr/local/bin/composer
#node
FROM gitlab/gitlab-runner
#gitlab-ruuner
RUN curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | bash && \
apt update && apt install -y gitlab-runner && \
gitlab-runner uninstall && \
gitlab-runner install --user=root --working-directory=/root && \
gitlab-runner start
EXPOSE 4444
EXPOSE 7900
LABEL miekrif/uzvar 0.3
ENTRYPOINT ["/bin/bash"]
.gitlab-ci.yml
.prepare-dev:
stage: prepare
script:
- mkdir -p storage/framework/cache storage/framework/sessions storage/framework/testing storage/framework/views
artifacts:
when: always
name: $CI_COMMIT_SHA
untracked: true
paths:
- tests/js/screens
- tests/js/report
cache:
paths:
- storage/framework
- vendor
- node_modules
- public
tags:
- new_container
only:
- ned_runner #Затычка бранча чтобы ранер не запускался
# - develop
prepare-composer:
extends: .prepare-dev
stage: prepare
script:
- whoami
- composer install --prefer-source --no-interaction
- npm i
- npm run prod
artifacts:
when: always
name: $CI_COMMIT_SHA
untracked: true
paths:
- tests/js/screens
- tests/js/report
cache:
paths:
- storage/framework
- vendor
- node_modules
- public
tags:
- new_container
job log:
--------- STARTING WORK ------------
[32;1m$ whoami[0;m
gitlab-runner
[32;1m$ composer install --prefer-source --no-interaction[0;m
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- Root composer.json requires PHP extension ext-intl * but it is missing from your system. Install or enable PHP's intl extension.
Problem 2
- phpoffice/phpspreadsheet is locked to version 1.24.1 and an update of this package was not requested.
- phpoffice/phpspreadsheet 1.24.1 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
Problem 3
- phpoffice/phpspreadsheet 1.24.1 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
- maatwebsite/excel 3.1.40 requires phpoffice/phpspreadsheet ^1.18 -> satisfiable by phpoffice/phpspreadsheet[1.24.1].
- maatwebsite/excel is locked to version 3.1.40 and an update of this package was not requested.
To enable extensions, verify that they are enabled in your .ini files:
- /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini
- /usr/local/etc/php/conf.d/docker-php-ext-exif.ini
- /usr/local/etc/php/conf.d/docker-php-ext-gettext.ini
- /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-intl --ignore-platform-req=ext-gd` to temporarily ignore these required extensions.
section_end:1672558253:step_script
[0Ksection_start:1672558253:upload_artifacts_on_failure
[0K[0K[36;1mUploading artifacts for failed job[0;m[0;m
[32;1mUploading artifacts...[0;m
Runtime platform [0;m arch[0;m=amd64 os[0;m=linux pid[0;m=34138 revision[0;m=6d480948 version[0;m=15.7.1