運用 docker 整合 laravel 提升團隊開發效率

124
Bo-Yi Wu LaravelConf @ 2017.07.01 1

Upload: bo-yi-wu

Post on 22-Jan-2018

2.259 views

Category:

Technology


0 download

TRANSCRIPT

  1. 1. Bo-Yi Wu LaravelConf @ 2017.07.01 1
  2. 2. DevOps Golang, PHP, Node.js .. Go Gitea Gin Drone appleboy @GitHub appleboy @twitter appleboy @slideshare appleboy46 @facebook 2
  3. 3. Develop CI CD
  4. 4. 4 https://labs.mediatek.com/en
  5. 5.
  6. 6. 6 *2 *1 *1 *1
  7. 7. 7 *2 *1 *1 *1
  8. 8. 8 *2 *1 *1 *1
  9. 9. 9
  10. 10. https://laravel.com/docs/5.4/homestead 10
  11. 11. VirtualBox Homestead Nginx (MySQL or Postgres?) . 11
  12. 12. 12
  13. 13. Homestead 13
  14. 14. 14
  15. 15. 15
  16. 16. 16
  17. 17. 17
  18. 18. 18
  19. 19. 19
  20. 20. 20 *2 *1 *1 *1
  21. 21. Docker 21 https://www.slideshare.net/appleboy/docker-61214768
  22. 22. docker-compose 22
  23. 23. docker-compose -p $(PROJECT) up -d 23
  24. 24. docker-compose -p $(PROJECT) stop 24
  25. 25. docker-compose -p $(PROJECT) ps 25
  26. 26. docker-compose -p $(PROJECT) down 26
  27. 27. docker exec $(container) php artisan migrate 27
  28. 28. docker-compose -p $(PROJECT)build --no-cache $(container) 28
  29. 29. docker-compose exec $(container) /bin/bash 29
  30. 30. 30
  31. 31. 31 http://laradock.io/
  32. 32. 32 Container
  33. 33.
  34. 34. 34
  35. 35. 35
  36. 36. 36 Nginx Docker
  37. 37. 37
  38. 38. 38
  39. 39. 39
  40. 40. 40
  41. 41. 41
  42. 42. 42
  43. 43. 43
  44. 44. 44
  45. 45. 45
  46. 46. 46
  47. 47. .env 47
  48. 48. 48 docker-compose.yml
  49. 49. 49
  50. 50. 50
  51. 51. 51
  52. 52. 52 git clone .env Docker PHP Node DB Migration
  53. 53. 53 git clone .env Docker PHP Node DB Migration
  54. 54. vendor or node_modules 54
  55. 55. 55
  56. 56. 56 composer.json
  57. 57. 57
  58. 58. yarn config set cache-folder .yarn-cache 58
  59. 59. 59 package.json
  60. 60. 60
  61. 61. 61
  62. 62. 62
  63. 63. 63
  64. 64. 64 http://epicentre.co.uk/testing-services/test2/
  65. 65. 65
  66. 66. 66
  67. 67. Develop CI CD
  68. 68. 68
  69. 69. 69
  70. 70. 70
  71. 71. Github Flow vs Git Flow 71
  72. 72. 72 Develop Git Push Git Tag Develop Git Push Git Tag Testing Deploy Deploy Deploy Production Staging Production Testing Deploy Staging
  73. 73. CI / CD 73
  74. 74. 74 Jenkins Drone Gitlab CI
  75. 75. 75 Jenkins Gitlab CI
  76. 76. 76
  77. 77. (Container) CI/CD 77
  78. 78. Everything is a Docker Container 78
  79. 79. 79
  80. 80. .drone.yml 80
  81. 81. 81
  82. 82. 82 git clone https://
  83. 83. 83 Git tag
  84. 84. 84
  85. 85. 85
  86. 86. 86
  87. 87. 87
  88. 88. 88
  89. 89. 89
  90. 90. 90
  91. 91. 91
  92. 92. 92
  93. 93. 93
  94. 94. Drone Workspace Clone Build Deploy
  95. 95. 95 plugin image
  96. 96. 96 plugin image
  97. 97. [skip cache] or [cache skip] 97
  98. 98. 98
  99. 99. 99 plugin image
  100. 100. 100
  101. 101. 101 plugin image
  102. 102. 102
  103. 103. 103
  104. 104. 105
  105. 105. 106
  106. 106. 107
  107. 107. 108
  108. 108. https://github.com/go-training/drone-laravel-example 109
  109. 109. 110
  110. 110. Plugin PHP, Ruby, Bash, Go, Python
  111. 111.
  112. 112. PLUGIN_
  113. 113. https://github.com/appleboy/drone-php-curl 121
  114. 114. http://bit.ly/oneday-devops 122
  115. 115. 123
  116. 116. 124