ddtrace 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +79 -0
  3. data/.rubocop.yml +250 -7
  4. data/.rubocop_todo.yml +396 -0
  5. data/Appraisals +15 -0
  6. data/CHANGELOG.md +68 -1
  7. data/Gemfile +38 -3
  8. data/Rakefile +5 -23
  9. data/ddtrace.gemspec +6 -36
  10. data/docs/DevelopmentGuide.md +28 -0
  11. data/docs/GettingStarted.md +8 -9
  12. data/integration/README.md +68 -0
  13. data/integration/apps/rack/.dockerignore +1 -0
  14. data/integration/apps/rack/.envrc.sample +1 -0
  15. data/integration/apps/rack/.gitignore +4 -0
  16. data/integration/apps/rack/.rspec +1 -0
  17. data/integration/apps/rack/Dockerfile +25 -0
  18. data/integration/apps/rack/Dockerfile-ci +11 -0
  19. data/integration/apps/rack/Gemfile +24 -0
  20. data/integration/apps/rack/README.md +93 -0
  21. data/integration/apps/rack/app/acme.rb +80 -0
  22. data/integration/apps/rack/app/datadog.rb +17 -0
  23. data/integration/apps/rack/bin/run +22 -0
  24. data/integration/apps/rack/bin/setup +17 -0
  25. data/integration/apps/rack/bin/test +24 -0
  26. data/integration/apps/rack/config.ru +6 -0
  27. data/integration/apps/rack/config/puma.rb +14 -0
  28. data/integration/apps/rack/config/unicorn.rb +23 -0
  29. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  30. data/integration/apps/rack/docker-compose.yml +78 -0
  31. data/integration/apps/rack/script/build-images +38 -0
  32. data/integration/apps/rack/script/ci +50 -0
  33. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  34. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  35. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  36. data/integration/apps/rails-five/.dockerignore +1 -0
  37. data/integration/apps/rails-five/.env +3 -0
  38. data/integration/apps/rails-five/.envrc.sample +1 -0
  39. data/integration/apps/rails-five/.gitignore +30 -0
  40. data/integration/apps/rails-five/Dockerfile +25 -0
  41. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  42. data/integration/apps/rails-five/Gemfile +104 -0
  43. data/integration/apps/rails-five/README.md +94 -0
  44. data/integration/apps/rails-five/Rakefile +6 -0
  45. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  46. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  47. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  48. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  49. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  50. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  51. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  52. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  53. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  54. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  55. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  56. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  57. data/integration/apps/rails-five/app/models/test.rb +2 -0
  58. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  59. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  60. data/integration/apps/rails-five/bin/bundle +3 -0
  61. data/integration/apps/rails-five/bin/rails +9 -0
  62. data/integration/apps/rails-five/bin/rake +9 -0
  63. data/integration/apps/rails-five/bin/run +24 -0
  64. data/integration/apps/rails-five/bin/setup +27 -0
  65. data/integration/apps/rails-five/bin/spring +17 -0
  66. data/integration/apps/rails-five/bin/test +21 -0
  67. data/integration/apps/rails-five/bin/update +28 -0
  68. data/integration/apps/rails-five/config.ru +5 -0
  69. data/integration/apps/rails-five/config/application.rb +97 -0
  70. data/integration/apps/rails-five/config/boot.rb +4 -0
  71. data/integration/apps/rails-five/config/cable.yml +10 -0
  72. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  73. data/integration/apps/rails-five/config/database.yml +28 -0
  74. data/integration/apps/rails-five/config/environment.rb +5 -0
  75. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  76. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  77. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  78. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  79. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  80. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  81. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  82. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  83. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  84. data/integration/apps/rails-five/config/puma.rb +24 -0
  85. data/integration/apps/rails-five/config/routes.rb +11 -0
  86. data/integration/apps/rails-five/config/spring.rb +6 -0
  87. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  88. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  89. data/integration/apps/rails-five/db/schema.rb +23 -0
  90. data/integration/apps/rails-five/db/seeds.rb +7 -0
  91. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  92. data/integration/apps/rails-five/docker-compose.yml +100 -0
  93. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  94. data/integration/apps/rails-five/log/.keep +0 -0
  95. data/integration/apps/rails-five/public/robots.txt +1 -0
  96. data/integration/apps/rails-five/script/build-images +35 -0
  97. data/integration/apps/rails-five/script/ci +50 -0
  98. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  99. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  100. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  101. data/integration/apps/rails-five/storage/.keep +0 -0
  102. data/integration/apps/rails-five/tmp/.keep +0 -0
  103. data/integration/apps/rails-five/vendor/.keep +0 -0
  104. data/integration/apps/ruby/.dockerignore +1 -0
  105. data/integration/apps/ruby/.envrc.sample +1 -0
  106. data/integration/apps/ruby/.gitignore +2 -0
  107. data/integration/apps/ruby/Dockerfile +25 -0
  108. data/integration/apps/ruby/Dockerfile-ci +11 -0
  109. data/integration/apps/ruby/Gemfile +11 -0
  110. data/integration/apps/ruby/README.md +70 -0
  111. data/integration/apps/ruby/agent.yaml +3 -0
  112. data/integration/apps/ruby/app/datadog.rb +13 -0
  113. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  114. data/integration/apps/ruby/bin/run +20 -0
  115. data/integration/apps/ruby/bin/setup +17 -0
  116. data/integration/apps/ruby/bin/test +21 -0
  117. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  118. data/integration/apps/ruby/docker-compose.yml +63 -0
  119. data/integration/apps/ruby/script/build-images +38 -0
  120. data/integration/apps/ruby/script/ci +50 -0
  121. data/integration/images/agent/Dockerfile +2 -0
  122. data/integration/images/agent/agent.yaml +3 -0
  123. data/integration/images/include/datadog/analyzer.rb +71 -0
  124. data/integration/images/include/datadog/demo_env.rb +101 -0
  125. data/integration/images/include/http-health-check +33 -0
  126. data/integration/images/ruby/2.0/Dockerfile +54 -0
  127. data/integration/images/ruby/2.1/Dockerfile +54 -0
  128. data/integration/images/ruby/2.2/Dockerfile +54 -0
  129. data/integration/images/ruby/2.3/Dockerfile +70 -0
  130. data/integration/images/ruby/2.4/Dockerfile +54 -0
  131. data/integration/images/ruby/2.5/Dockerfile +54 -0
  132. data/integration/images/ruby/2.6/Dockerfile +54 -0
  133. data/integration/images/ruby/2.7/Dockerfile +54 -0
  134. data/integration/images/ruby/3.0/Dockerfile +54 -0
  135. data/integration/images/wrk/Dockerfile +33 -0
  136. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  137. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  138. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  139. data/integration/script/build-images +43 -0
  140. data/lib/ddtrace.rb +0 -5
  141. data/lib/ddtrace/analytics.rb +2 -0
  142. data/lib/ddtrace/buffer.rb +4 -4
  143. data/lib/ddtrace/configuration.rb +1 -1
  144. data/lib/ddtrace/configuration/base.rb +1 -1
  145. data/lib/ddtrace/configuration/components.rb +2 -2
  146. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  147. data/lib/ddtrace/configuration/options.rb +2 -3
  148. data/lib/ddtrace/configuration/settings.rb +17 -3
  149. data/lib/ddtrace/context.rb +5 -6
  150. data/lib/ddtrace/context_provider.rb +1 -0
  151. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  152. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  153. data/lib/ddtrace/contrib/action_view/event.rb +1 -1
  154. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  155. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +17 -5
  156. data/lib/ddtrace/contrib/active_record/utils.rb +1 -0
  157. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -1
  158. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  159. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  160. data/lib/ddtrace/contrib/auto_instrument.rb +1 -0
  161. data/lib/ddtrace/contrib/aws/patcher.rb +1 -0
  162. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  163. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +1 -4
  164. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -10
  165. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -2
  166. data/lib/ddtrace/contrib/cucumber/formatter.rb +5 -11
  167. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  168. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -1
  169. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  170. data/lib/ddtrace/contrib/ethon/easy_patch.rb +5 -5
  171. data/lib/ddtrace/contrib/excon/middleware.rb +2 -6
  172. data/lib/ddtrace/contrib/extensions.rb +1 -0
  173. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  174. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  175. data/lib/ddtrace/contrib/grape/endpoint.rb +8 -15
  176. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  177. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  178. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  179. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  180. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  181. data/lib/ddtrace/contrib/http/instrumentation.rb +5 -5
  182. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +2 -3
  183. data/lib/ddtrace/contrib/httprb/instrumentation.rb +2 -3
  184. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  185. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  186. data/lib/ddtrace/contrib/patcher.rb +1 -1
  187. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  188. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  189. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  190. data/lib/ddtrace/contrib/que/tracer.rb +1 -1
  191. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  192. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  193. data/lib/ddtrace/contrib/rack/middlewares.rb +5 -10
  194. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  195. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  196. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  197. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  198. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  199. data/lib/ddtrace/contrib/registry.rb +2 -2
  200. data/lib/ddtrace/contrib/resque/resque_job.rb +2 -0
  201. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  202. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -10
  203. data/lib/ddtrace/contrib/rspec/example.rb +24 -10
  204. data/lib/ddtrace/contrib/rspec/ext.rb +0 -3
  205. data/lib/ddtrace/contrib/rspec/integration.rb +1 -1
  206. data/lib/ddtrace/contrib/rspec/patcher.rb +0 -2
  207. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  208. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -1
  209. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +2 -7
  210. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  211. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  212. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  213. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  214. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +3 -3
  215. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  216. data/lib/ddtrace/contrib/sneakers/tracer.rb +2 -4
  217. data/lib/ddtrace/contrib/status_code_matcher.rb +5 -3
  218. data/lib/ddtrace/correlation.rb +1 -0
  219. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -1
  220. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  221. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  222. data/lib/ddtrace/ext/ci.rb +2 -2
  223. data/lib/ddtrace/ext/distributed.rb +1 -1
  224. data/lib/ddtrace/ext/http.rb +1 -1
  225. data/lib/ddtrace/ext/runtime.rb +1 -1
  226. data/lib/ddtrace/forced_tracing.rb +2 -0
  227. data/lib/ddtrace/logger.rb +1 -1
  228. data/lib/ddtrace/metrics.rb +10 -6
  229. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  230. data/lib/ddtrace/opentracer/span.rb +2 -6
  231. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  232. data/lib/ddtrace/patcher.rb +2 -3
  233. data/lib/ddtrace/pin.rb +3 -52
  234. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  235. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  236. data/lib/ddtrace/quantization/http.rb +1 -0
  237. data/lib/ddtrace/runtime/cgroup.rb +1 -1
  238. data/lib/ddtrace/runtime/container.rb +2 -2
  239. data/lib/ddtrace/sampler.rb +1 -1
  240. data/lib/ddtrace/sampling/rule_sampler.rb +1 -0
  241. data/lib/ddtrace/span.rb +7 -7
  242. data/lib/ddtrace/sync_writer.rb +7 -10
  243. data/lib/ddtrace/tracer.rb +1 -1
  244. data/lib/ddtrace/transport/http.rb +1 -3
  245. data/lib/ddtrace/transport/http/adapters/net.rb +9 -4
  246. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  247. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  248. data/lib/ddtrace/transport/http/builder.rb +2 -0
  249. data/lib/ddtrace/transport/http/traces.rb +2 -3
  250. data/lib/ddtrace/transport/io.rb +1 -1
  251. data/lib/ddtrace/transport/traces.rb +3 -0
  252. data/lib/ddtrace/utils/time.rb +25 -1
  253. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  254. data/lib/ddtrace/version.rb +1 -1
  255. data/lib/ddtrace/workers.rb +5 -0
  256. data/lib/ddtrace/workers/async.rb +8 -0
  257. data/lib/ddtrace/workers/loop.rb +3 -0
  258. data/lib/ddtrace/workers/polling.rb +1 -0
  259. data/lib/ddtrace/workers/trace_writer.rb +9 -10
  260. data/lib/ddtrace/writer.rb +3 -3
  261. metadata +133 -400
  262. data/lib/ddtrace/augmentation.rb +0 -13
  263. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  264. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  265. data/lib/ddtrace/augmentation/shim.rb +0 -102
  266. data/lib/ddtrace/contrib/rspec/example_group.rb +0 -61
  267. data/lib/ddtrace/monkey.rb +0 -58
@@ -0,0 +1,33 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # If health check URL provided, wait till it passes.
5
+ if [ -n "$HEALTH_CHECK_URL" ]; then
6
+ STATUS=${HEALTH_CHECK_STATUS:-204}
7
+ INTERVAL=${HEALTH_CHECK_INTERVAL:-5}
8
+ MAX_ATTEMPTS=${HEALTH_CHECK_MAX_ATTEMPTS:-5}
9
+ ATTEMPTS=0
10
+
11
+ echo -e "\n== HTTP Health check =="
12
+ echo "Target: $HEALTH_CHECK_URL"
13
+ echo "Healthy status: $STATUS"
14
+ echo "Poll interval: $INTERVAL seconds"
15
+ echo "** Polling until healthy state... **"
16
+ printf "Attempt ($(($ATTEMPTS + 1))/$MAX_ATTEMPTS): "
17
+ while [[ "$(curl --max-time $INTERVAL -s -o /dev/null -w ''%{http_code}'' $HEALTH_CHECK_URL)" != $STATUS ]]; do
18
+ printf "FAIL"
19
+ ATTEMPTS=$[ATTEMPTS + 1]
20
+
21
+ if (( $ATTEMPTS >= $MAX_ATTEMPTS )); then
22
+ echo -e "\nERROR: Health check max attempts reached for $HEALTH_CHECK_URL" >&2
23
+ exit 1
24
+ else
25
+ printf " (Waiting $INTERVAL seconds...)\n"
26
+ sleep $INTERVAL
27
+ fi
28
+
29
+ printf "Attempt ($(($ATTEMPTS + 1))/$MAX_ATTEMPTS): "
30
+ done
31
+ echo "SUCCESS"
32
+ echo -e "== HTTP Health check complete. ==\n"
33
+ fi
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.0
2
+
3
+ # Add Jessie repos
4
+ # Fixes https://superuser.com/questions/1423486/issue-with-fetching-http-deb-debian-org-debian-dists-jessie-updates-inrelease
5
+ RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
6
+
7
+ ENV DEBIAN_FRONTEND=noninteractive
8
+
9
+ # Install prerequisites
10
+ RUN set -ex && \
11
+ echo "===> Installing dependencies" && \
12
+ apt-get -y update && \
13
+ apt-get install -y --force-yes --no-install-recommends \
14
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
15
+ \
16
+ echo "===> Installing NodeJS" && \
17
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
18
+ \
19
+ echo "===> Installing Yarn" && \
20
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
21
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
22
+ apt-get update && \
23
+ apt-get install -y --force-yes --no-install-recommends yarn && \
24
+ \
25
+ echo "===> Installing database libraries" && \
26
+ apt-get install -y --force-yes --no-install-recommends \
27
+ postgresql-client sqlite3 && \
28
+ \
29
+ echo "===> Installing dev tools" && \
30
+ mkdir -p /usr/share/man/man1 && \
31
+ apt-get install -y --force-yes --no-install-recommends \
32
+ sudo git openssh-client rsync vim \
33
+ net-tools netcat parallel unzip zip bzip2 && \
34
+ \
35
+ echo "===> Cleaning up" && \
36
+ rm -rf /var/lib/apt/lists/*;
37
+
38
+ # Set timezone to UTC by default
39
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
40
+
41
+ # Set language
42
+ RUN locale-gen en_US.UTF-8
43
+ ENV LANG en_US.UTF-8
44
+ ENV LANGUAGE en_US:en
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system 2.7.9
48
+ RUN gem install bundler -v '1.17.3'
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.1
2
+
3
+ # Add Jessie repos
4
+ # Fixes https://superuser.com/questions/1423486/issue-with-fetching-http-deb-debian-org-debian-dists-jessie-updates-inrelease
5
+ RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
6
+
7
+ ENV DEBIAN_FRONTEND=noninteractive
8
+
9
+ # Install prerequisites
10
+ RUN set -ex && \
11
+ echo "===> Installing dependencies" && \
12
+ apt-get -y update && \
13
+ apt-get install -y --force-yes --no-install-recommends \
14
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
15
+ \
16
+ echo "===> Installing NodeJS" && \
17
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
18
+ \
19
+ echo "===> Installing Yarn" && \
20
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
21
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
22
+ apt-get update && \
23
+ apt-get install -y --force-yes --no-install-recommends yarn && \
24
+ \
25
+ echo "===> Installing database libraries" && \
26
+ apt-get install -y --force-yes --no-install-recommends \
27
+ postgresql-client sqlite3 && \
28
+ \
29
+ echo "===> Installing dev tools" && \
30
+ mkdir -p /usr/share/man/man1 && \
31
+ apt-get install -y --force-yes --no-install-recommends \
32
+ sudo git openssh-client rsync vim \
33
+ net-tools netcat parallel unzip zip bzip2 && \
34
+ \
35
+ echo "===> Cleaning up" && \
36
+ rm -rf /var/lib/apt/lists/*;
37
+
38
+ # Set timezone to UTC by default
39
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
40
+
41
+ # Set language
42
+ RUN locale-gen en_US.UTF-8
43
+ ENV LANG en_US.UTF-8
44
+ ENV LANGUAGE en_US:en
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system 2.7.9
48
+ RUN gem install bundler -v '1.17.3'
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.2
2
+
3
+ # Add Jessie repos
4
+ # Fixes https://superuser.com/questions/1423486/issue-with-fetching-http-deb-debian-org-debian-dists-jessie-updates-inrelease
5
+ RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
6
+
7
+ ENV DEBIAN_FRONTEND=noninteractive
8
+
9
+ # Install prerequisites
10
+ RUN set -ex && \
11
+ echo "===> Installing dependencies" && \
12
+ apt-get -y update && \
13
+ apt-get install -y --force-yes --no-install-recommends \
14
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
15
+ \
16
+ echo "===> Installing NodeJS" && \
17
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
18
+ \
19
+ echo "===> Installing Yarn" && \
20
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
21
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
22
+ apt-get update && \
23
+ apt-get install -y --force-yes --no-install-recommends yarn && \
24
+ \
25
+ echo "===> Installing database libraries" && \
26
+ apt-get install -y --force-yes --no-install-recommends \
27
+ postgresql-client sqlite3 && \
28
+ \
29
+ echo "===> Installing dev tools" && \
30
+ mkdir -p /usr/share/man/man1 && \
31
+ apt-get install -y --force-yes --no-install-recommends \
32
+ sudo git openssh-client rsync vim \
33
+ net-tools netcat parallel unzip zip bzip2 && \
34
+ \
35
+ echo "===> Cleaning up" && \
36
+ rm -rf /var/lib/apt/lists/*;
37
+
38
+ # Set timezone to UTC by default
39
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
40
+
41
+ # Set language
42
+ RUN locale-gen en_US.UTF-8
43
+ ENV LANG en_US.UTF-8
44
+ ENV LANGUAGE en_US:en
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system 2.7.9
48
+ RUN gem install bundler -v '1.17.3'
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,70 @@
1
+ FROM ruby:2.3
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+
5
+ # Install prerequisites
6
+ RUN set -ex && \
7
+ echo "===> Installing dependencies" && \
8
+ apt-get -y update && \
9
+ apt-get install -y --force-yes --no-install-recommends \
10
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
11
+ \
12
+ echo "===> Installing NodeJS" && \
13
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
14
+ \
15
+ echo "===> Installing Yarn" && \
16
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
17
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
18
+ apt-get update && \
19
+ apt-get install -y --force-yes --no-install-recommends yarn && \
20
+ \
21
+ echo "===> Installing database libraries" && \
22
+ apt-get install -y --force-yes --no-install-recommends \
23
+ postgresql-client sqlite3 && \
24
+ \
25
+ echo "===> Installing dev tools" && \
26
+ mkdir -p /usr/share/man/man1 && \
27
+ apt-get install -y --force-yes --no-install-recommends \
28
+ sudo git openssh-client rsync vim \
29
+ net-tools netcat parallel unzip zip bzip2 && \
30
+ \
31
+ echo "===> Cleaning up" && \
32
+ rm -rf /var/lib/apt/lists/*;
33
+
34
+ # Set timezone to UTC by default
35
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
36
+
37
+ # Set language
38
+ RUN locale-gen en_US.UTF-8
39
+ ENV LANG en_US.UTF-8
40
+ ENV LANGUAGE en_US:en
41
+
42
+ # Install RubyGems
43
+ RUN gem update --system
44
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system
48
+ RUN gem install bundler
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # NOTE:
52
+ # Ruby 2.3 base image sets BUNDLE_PATH which causes Bundler (>= 2.0) to install to:
53
+ # /usr/local/bundle/ruby/2.3.0/bin
54
+ # Instead of the desired:
55
+ # /usr/local/bundle/bin
56
+ #
57
+ # Because BUNDLE_PATH cannot be removed from ENV (Docker does not permit this),
58
+ # we must work around this by adding the bin directory to the PATH.
59
+ #
60
+ # See:
61
+ # https://github.com/docker-library/ruby/issues/297
62
+ # https://github.com/docker-library/ruby/pull/306
63
+ # https://github.com/rubygems/bundler/issues/7494
64
+ ENV GEM_PATH=$GEM_HOME:$GEM_HOME/ruby/$RUBY_MAJOR.0
65
+ ENV PATH=$GEM_HOME/bin:$GEM_HOME/ruby/$RUBY_MAJOR.0/bin:$PATH
66
+
67
+ # Setup demo environment includes
68
+ COPY ./include /vendor/dd-demo
69
+ ENV RUBYLIB /vendor/dd-demo
70
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.4
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+
5
+ # Install prerequisites
6
+ RUN set -ex && \
7
+ echo "===> Installing dependencies" && \
8
+ apt-get -y update && \
9
+ apt-get install -y --force-yes --no-install-recommends \
10
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
11
+ \
12
+ echo "===> Installing NodeJS" && \
13
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
14
+ \
15
+ echo "===> Installing Yarn" && \
16
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
17
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
18
+ apt-get update && \
19
+ apt-get install -y --force-yes --no-install-recommends yarn && \
20
+ \
21
+ echo "===> Installing database libraries" && \
22
+ apt-get install -y --force-yes --no-install-recommends \
23
+ postgresql-client sqlite3 && \
24
+ \
25
+ echo "===> Installing dev tools" && \
26
+ mkdir -p /usr/share/man/man1 && \
27
+ apt-get install -y --force-yes --no-install-recommends \
28
+ sudo git openssh-client rsync vim \
29
+ net-tools netcat parallel unzip zip bzip2 && \
30
+ \
31
+ echo "===> Cleaning up" && \
32
+ rm -rf /var/lib/apt/lists/*;
33
+
34
+ # Set timezone to UTC by default
35
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
36
+
37
+ # Set language
38
+ RUN locale-gen en_US.UTF-8
39
+ ENV LANG en_US.UTF-8
40
+ ENV LANGUAGE en_US:en
41
+
42
+ # Install RubyGems
43
+ RUN gem update --system
44
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system
48
+ RUN gem install bundler
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.5
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+
5
+ # Install prerequisites
6
+ RUN set -ex && \
7
+ echo "===> Installing dependencies" && \
8
+ apt-get -y update && \
9
+ apt-get install -y --force-yes --no-install-recommends \
10
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
11
+ \
12
+ echo "===> Installing NodeJS" && \
13
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
14
+ \
15
+ echo "===> Installing Yarn" && \
16
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
17
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
18
+ apt-get update && \
19
+ apt-get install -y --force-yes --no-install-recommends yarn && \
20
+ \
21
+ echo "===> Installing database libraries" && \
22
+ apt-get install -y --force-yes --no-install-recommends \
23
+ postgresql-client sqlite3 && \
24
+ \
25
+ echo "===> Installing dev tools" && \
26
+ mkdir -p /usr/share/man/man1 && \
27
+ apt-get install -y --force-yes --no-install-recommends \
28
+ sudo git openssh-client rsync vim \
29
+ net-tools netcat parallel unzip zip bzip2 && \
30
+ \
31
+ echo "===> Cleaning up" && \
32
+ rm -rf /var/lib/apt/lists/*;
33
+
34
+ # Set timezone to UTC by default
35
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
36
+
37
+ # Set language
38
+ RUN locale-gen en_US.UTF-8
39
+ ENV LANG en_US.UTF-8
40
+ ENV LANGUAGE en_US:en
41
+
42
+ # Install RubyGems
43
+ RUN gem update --system
44
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system
48
+ RUN gem install bundler
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.6
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+
5
+ # Install prerequisites
6
+ RUN set -ex && \
7
+ echo "===> Installing dependencies" && \
8
+ apt-get -y update && \
9
+ apt-get install -y --force-yes --no-install-recommends \
10
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
11
+ \
12
+ echo "===> Installing NodeJS" && \
13
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
14
+ \
15
+ echo "===> Installing Yarn" && \
16
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
17
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
18
+ apt-get update && \
19
+ apt-get install -y --force-yes --no-install-recommends yarn && \
20
+ \
21
+ echo "===> Installing database libraries" && \
22
+ apt-get install -y --force-yes --no-install-recommends \
23
+ postgresql-client sqlite3 && \
24
+ \
25
+ echo "===> Installing dev tools" && \
26
+ mkdir -p /usr/share/man/man1 && \
27
+ apt-get install -y --force-yes --no-install-recommends \
28
+ sudo git openssh-client rsync vim \
29
+ net-tools netcat parallel unzip zip bzip2 && \
30
+ \
31
+ echo "===> Cleaning up" && \
32
+ rm -rf /var/lib/apt/lists/*;
33
+
34
+ # Set timezone to UTC by default
35
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
36
+
37
+ # Set language
38
+ RUN locale-gen en_US.UTF-8
39
+ ENV LANG en_US.UTF-8
40
+ ENV LANGUAGE en_US:en
41
+
42
+ # Install RubyGems
43
+ RUN gem update --system
44
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system
48
+ RUN gem install bundler
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.7
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+
5
+ # Install prerequisites
6
+ RUN set -ex && \
7
+ echo "===> Installing dependencies" && \
8
+ apt-get -y update && \
9
+ apt-get install -y --force-yes --no-install-recommends \
10
+ curl wget tar gzip gnupg apt-transport-https ca-certificates tzdata locales && \
11
+ \
12
+ echo "===> Installing NodeJS" && \
13
+ apt-get install -y --force-yes --no-install-recommends nodejs && \
14
+ \
15
+ echo "===> Installing Yarn" && \
16
+ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
17
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
18
+ apt-get update && \
19
+ apt-get install -y --force-yes --no-install-recommends yarn && \
20
+ \
21
+ echo "===> Installing database libraries" && \
22
+ apt-get install -y --force-yes --no-install-recommends \
23
+ postgresql-client sqlite3 && \
24
+ \
25
+ echo "===> Installing dev tools" && \
26
+ mkdir -p /usr/share/man/man1 && \
27
+ apt-get install -y --force-yes --no-install-recommends \
28
+ sudo git openssh-client rsync vim \
29
+ net-tools netcat parallel unzip zip bzip2 && \
30
+ \
31
+ echo "===> Cleaning up" && \
32
+ rm -rf /var/lib/apt/lists/*;
33
+
34
+ # Set timezone to UTC by default
35
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
36
+
37
+ # Set language
38
+ RUN locale-gen en_US.UTF-8
39
+ ENV LANG en_US.UTF-8
40
+ ENV LANGUAGE en_US:en
41
+
42
+ # Install RubyGems
43
+ RUN gem update --system
44
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
45
+
46
+ # Install RubyGems
47
+ RUN gem update --system
48
+ RUN gem install bundler
49
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
50
+
51
+ # Setup demo environment includes
52
+ COPY ./include /vendor/dd-demo
53
+ ENV RUBYLIB /vendor/dd-demo
54
+ ENV RUBYOPT -rdatadog/demo_env