как я могу создать базу данных в службе докеров mysql

Я пытаюсь запустить Moodle phpunit на моем сервере gitlab ci. Используя файл gitlab-ci.yml, я создаю контейнер с php 5.6 и сервисом mysql.

# Services
services:
  - mysql:latest

before_script: 
  - mysql -e 'CREATE DATABASE gitlab_ci_test DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;' ;

Я получаю ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) и не знаю, что делать дальше.


person Tomasz Kowalczyk    schedule 30.11.2015    source источник
comment
stackoverflow.com/a/15039113   -  person Drew    schedule 30.11.2015
comment
Была ли ошибка вызвана командой в before_script или самим заданием? Поскольку служба mysql находится в другом контейнере, может возникнуть необходимость использовать mysql --host=mysql -e 'CREATE....   -  person yjwong    schedule 30.11.2015
comment
Да, ошибка выдавалась в before_script. И я думаю, что ваше предложение сработало, просто теперь нужно выяснить, как подключиться к этой базе данных.   -  person Tomasz Kowalczyk    schedule 01.12.2015


Ответы (1)


Томаш, это мой файл gitlab-ci.yml, вам понадобится что-то вроде этого:

# Select image from https://hub.docker.com/r/_/php/
image: php:7.0.0

services:
  - mysql:5.7

variables:
  # Configure mysql environment variables (https://hub.docker.com/r/_/mysql/)
  MYSQL_DATABASE: symfony
  MYSQL_ROOT_PASSWORD: qwerty

# Composer stores all downloaded packages in the vendor/ directory.
# Do not use the following if the vendor/ directory is commited to
# your git repository.
cache:
  paths:
  - vendor/

before_script:
# Install dependencies
- bash ci/docker_install.sh > /dev/null
- cp ci/parameters.yml app/config/parameters.yml
- composer install

test:app:
  script:
  - phpunit

А это мой docker_install.sh внутри папки ci

#!/bin/bash

# We need to install dependencies only for Docker
[[ ! -e /.dockerenv ]] && [[ ! -e /.dockerinit ]] && exit 0

set -xe

# Install git (the php image doesn't have it) which is required by composer
apt-get update -yqq
apt-get install git -yqq
apt-get install wget -yqq
apt-get install zip unzip -yqq

# Install composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

# Install phpunit, the tool that we will use for testing
curl -o /usr/local/bin/phpunit https://phar.phpunit.de/phpunit.phar
chmod +x /usr/local/bin/phpunit

# Install mysql driver
# Here you can install any other extension that you need
docker-php-ext-install pdo pdo_mysql mbstring
person Luis Lopes    schedule 03.06.2016