简体   繁体   中英

How to use my own Docker image with GitLab CI?

I want to use this Docker image:

https://cloud.docker.com/u/steevanb/repository/docker/steevanb/php-code-sniffs

From this Dockerfile:

https://github.com/steevanb/docker-php-code-sniffs/blob/master/Dockerfile

Locally, i use it like that:

#!/bin/bash

set -e

readonly PROJECT_DIR=$(realpath $(dirname $(realpath $0))/..)

docker run \
    --rm \
    -e PHPCS_PARAMETERS="--warning-severity=0 --ignore=/var/phpcs/var,/var/phpcs/vendor/" \
    -e PHPCS_BOOTSTRAP=/var/phpcs.bootstrap.php \
    -v ${PROJECT_DIR}:/var/phpcs:ro \
    -v ${PROJECT_DIR}/phpcs.bootstrap.php:/var/phpcs.bootstrap.php:ro \
    steevanb/php-code-sniffs:2.0.9

I don't understand how i can use it in Gitlab CI, with same parameters?

I've tried some things, like that:

phpcs:
    image:
        name: steevanb/php-code-sniffs:2.0.9
        entrypoint: ["/var/steevanb/php-code-sniffs/vendor/bin/phpcs", "$CI_PROJECT_DIR/project/user/src"]
    # don't need it, everything is done by overloading entrypoint
    script: echo $CI_PROJECT_DIR

But i have this error, seems $CI_PROJECT_DIR is not replaced with the expected value:

RROR: The file "$CI_PROJECT_DIR/project/user/src" does not exist.

In order to use your own image in default runners, you need to put image In the beginning of .gitlab-ci.yml , you should write it like:

image: python:alpine

before_script:
  - pip install mkdocs
...

If you are using gitlab CI/CD you can use your image by uploading the images to docker hub.

Steps to produce docker image:
1.compose a Docker file in your local machine.
2.build a docker image using that docker file.
3.name the docker image, create or login to docker hub
4.publish the image to you docker repository.

Reference: click here

You can pass environment variables using either GitLab Secret Variables (set in the project settings) or by specifying variables in .gitlab-ci.yml .

See GitLab CI YAML Variables documentation.

For example, in your .gitlab-ci.yml you may be able to specify:

variables:
  PHPCS_PARAMETERS: --warning-severity=0 --ignore=/var/phpcs/var,/var/phpcs/vendor/
  PHPCS_BOOTSTRAP: PHPCS_BOOTSTRAP=/var/phpcs.bootstrap.php

image: steevanb/php-code-sniffs:2.0.9

your_job:
  script:
  - your_script

In this example, the variables and image are set globally. You can also set both of these within each job rather than globally.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM