安装及启动

使用Docker启动

  1. version: '2'
  2. services:
  3. phabricator:
  4. restart: always
  5. ports:
  6. - "62443:443"
  7. - "80:80"
  8. - "62022:22"
  9. volumes:
  10. - /srv/docker/phabricator/repos:/srv/repo
  11. - /srv/docker/phabricator/static:/srv/static
  12. - /srv/docker/phabricator/conf:/srv/phabricator/phabricator/conf
  13. - /srv/docker/phabricator/extensions:/srv/phabricator/phabricator/src/extensions
  14. - /srv/docker/phabricator/pha-keys:/hostkeys
  15. depends_on:
  16. - mysql
  17. links:
  18. - mysql
  19. environment:
  20. - MYSQL_HOST=mysql
  21. - MYSQL_USER=root
  22. - MYSQL_PASS=phabricator
  23. - PHABRICATOR_REPOSITORY_PATH=/srv/repo
  24. - PHABRICATOR_HOST=wiki2.taiyouxi.net
  25. - PHABRICATOR_HOST_KEYS_PATH=/hostkeys/persisted
  26. - ENABLE_APCU=true
  27. image: redpointgames/phabricator
  28. mysql:
  29. restart: always
  30. volumes:
  31. - /srv/docker/phabricator-db/mysql:/var/lib/mysql
  32. image: mysql:5.7.14
  33. environment:
  34. - MYSQL_ROOT_PASSWORD=phabricator
  35. command: [
  36. "--character-set-server=utf8mb4",
  37. "--max-allowed-packet=33554432",
  38. "--sql_mode=STRICT_ALL_TABLES",
  39. "--innodb_buffer_pool_size=1600M"
  40. ]

注意事项

不是迁移的情况可以使用(上面的是把配置全copy到容器外目录的时候使用的)
  1. /srv/docker/phabricator/conf/local/local.json:/srv/phabricator/phabricator/conf/local/local.json

本地配置如下(/srv/docker/phabricator/conf/local/local.json)
  1. {
  2. "notification.servers": [
  3. {
  4. "type": "client",
  5. "host": "wiki2.test.net",
  6. "port": 80,
  7. "protocol": "http",
  8. "path": "/ws/"
  9. },
  10. {
  11. "type": "admin",
  12. "host": "127.0.0.1",
  13. "port": 22281,
  14. "protocol": "http"
  15. }
  16. ],
  17. "storage.mysql-engine.max-size": 67108864,
  18. "repository.default-local-path": "/srv/repo",
  19. "storage.local-disk.path": "/srv/static",
  20. "pygments.enabled": true,
  21. "diffusion.ssh-user": "git",
  22. "phd.user": "git",
  23. "phabricator.base-uri": "http://wiki2.test.net/",
  24. "storage.default-namespace": "phabricator",
  25. "mysql.pass": "phabricator",
  26. "mysql.user": "root",
  27. "mysql.host": "mysql"
  28. }

数据库补充说明

如果需要启动时进行MysqlDB的初始化,可以在镜像这里进行设置
  1. 修改挂载

    1. ...
    2. volumes:
    3. - mysql-master-data:/var/lib/mysql
    4. - ./init-db-sql/sakila-schema.sql:/docker-entrypoint-initdb.d/1-schema.sql
    5. - ./init-db-sql/sakila-data.sql:/docker-entrypoint-initdb.d/2-data.sql
    6. - ./init-db-sql/init-master.sh:/docker-entrypoint-initdb.d/3-init-master.sh
    7. ...
  2. 参考

    参考:https://hub.docker.com/_/mysql/ 基础镜像会在初始化(仅首次运行)时按文件名顺序执行 /docker-entrypoint-initdb.d 下的 .sql .sh 等文件

问题解决

普通列表项目无法读取写入仓库问题
 #参考网址 https://github.com/RedpointGames/phabricator/issues/8
 chown 2000.2000 -R /srv/repo
 chmod 777 -R /srv/static

配置问题
#略

迁移

 #迁移代码数据
 scp -r /mnt/raid/phabricator/repo/* 10.0.1.1:/srv/docker/phabricator/repos/
 chown -R 2000.2000 /srv/docker/phabricator/repos/
 #迁移附件数据
 scp -r /mnt/raid/phabricator/static/* 10.0.1.1:/srv/docker/phabricator/static/
 chmod -R 777 /srv/docker/phabricator/static/
 #迁移数据库
 scp /usr/local/src/dockers/phabricator/pha_src/dbbackup/20190625-030001.sql.gz 10.0.1.221:/data/pha-restore/
 docker cp /data/pha-restore/20190625-030001.sql.gz phabricator_mysql_1:/
 docker exec -it phabricator_mysql_1 /bin/bash
 gunzip -c 20190625-030001.sql.gz |mysql -uroot -pphabricator