fspringveldt/ss-dockerfile

该软件包最新版本(dev-master)没有提供许可信息。

一个非常简单的 Docker 镜像定义

安装: 15

依赖者: 1

建议者: 0

安全: 0

星标: 5

监视者: 2

分叉: 1

开放问题: 0

类型:silverstripe-module

dev-master 2017-05-19 02:38 UTC

This package is auto-updated.

Last update: 2024-09-13 10:25:42 UTC


README

我本地的 SilverStripe Dockerfile,用于与 Docker-Compose 一起使用,包括 XDebug 支持 :)

设置

  1. 按照以下指南安装 docker:点击这里。
  2. 在您的项目根目录中创建一个名为 .env 的文件,如下所示,并在等号后添加值
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
XDEBUG_REMOTE_HOST=
SS_ADMIN_USER=
SS_ADMIN_PASSWORD=
SS_ENVIRONMENT=
PMA_VIRTUAL_HOST=
DB_VIRTUAL_HOST=
SS_VIRTUAL_HOST=
  1. 编辑您的本地 hosts 文件,将 PMA_VIRTUAL_HOST、DB_VIRTUAL_HOST 和 SS_VIRTUAL_HOST(如上 .env 文件中定义)的值指向 docker vm ip 地址
  2. 在您的项目根目录中创建一个名为 docker-compose.yml 的文件,并将以下内容复制到其中
version: "2"

services:
  db:
    image: mysql:5.7
    container_name: mysql
    volumes:
      - db-data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      VIRTUAL_HOST: ${DB_VIRTUAL_HOST}
  ss:
    build: https://github.com/fspringveldt/ss-dockerfile.git#master
    container_name: ss-site
    links:
      - db
    depends_on:
      - db
    working_dir: /var/www/htdocs
    volumes:
      - ./:/var/www/htdocs
    environment:
      - VIRTUAL_HOST=${SS_VIRTUAL_HOST}
      - DATABASE_SERVER=db
      - XDEBUG_CONFIG=remote_host=${XDEBUG_REMOTE_HOST}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - SS_DEFAULT_ADMIN_USERNAME=${SS_ADMIN_USER}
      - SS_DEFAULT_ADMIN_PASSWORD=${SS_ADMIN_PASSWORD}
      - SS_ENVIRONMENT=${SS_ENVIRONMENT}
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./ss-dockerfile/nginx-proxy.conf:/etc/nginx/conf.d/nginx-proxy.conf      
  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin/phpmyadmin
    links:
      - db:mysql
    depends_on:
      - db
    ports:
      - "8181:80"
    environment:
      PMA_HOST: mysql
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      VIRTUAL_HOST: ${PMA_VIRTUAL_HOST}
volumes:
  db-data:
  1. 运行 docker-compose build,然后使用 docker-compose up -d 启动您的容器。使用 docker-compose down 停止它们,使用 docker-compose down -v 删除挂载的卷。

在此阶段,如果一切顺利,您可以 shell 到您的 ss 容器 docker exec -ti ss-site /bin/bash,从这里您可以运行 composer create-project ... 命令。

其他资源

  1. 以下是一个 SilverStripe 环境文件 (_ss_environment.php) 语法示例
<?php
    /**
     * Created by PhpStorm.
     * User: francospringveldt
     * Date: 2017/02/23
     * Time: 8:26 AM
     */
    /* What kind of environment is this: development, test, or live (i.e. production)? */
    define('SS_ENVIRONMENT_TYPE', getenv('SS_ENVIRONMENT') ?: 'live');
    /* Database connection */
    //NB: You can substitute getenv() with string values of your choice if you choose.
    define('SS_DATABASE_SERVER', getenv('DATABASE_SERVER'));
    define('SS_DATABASE_NAME', getenv('MYSQL_DATABASE'));
    define(
        'SS_DATABASE_USERNAME', getenv(
            'MYSQL_USER'
        )
    );
    define('SS_DATABASE_PASSWORD', getenv('MYSQL_PASSWORD'));
    /* Configure a default username and password to access the CMS on all sites in this environment. */
    define('SS_DEFAULT_ADMIN_USERNAME', getenv('SS_DEFAULT_ADMIN_USERNAME'));
    define('SS_DEFAULT_ADMIN_PASSWORD', getenv('SS_DEFAULT_ADMIN_PASSWORD'));
    $host = sprintf('http://%s', getenv('VIRTUAL_HOST'));
    global $_FILE_TO_URL_MAPPING;
    $_FILE_TO_URL_MAPPING['/var/www/html'] = $host;