config.sh 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. #!/usr/bin/env bash
  2. globalTests+=(
  3. utc
  4. cve-2014--shellshock
  5. no-hard-coded-passwords
  6. override-cmd
  7. )
  8. # for "explicit" images, only run tests that are explicitly specified for that image/variant
  9. explicitTests+=(
  10. [:onbuild]=1
  11. )
  12. imageTests[:onbuild]+='
  13. override-cmd
  14. '
  15. testAlias+=(
  16. [amazoncorretto]='openjdk'
  17. [adoptopenjdk]='openjdk'
  18. [sapmachine]='openjdk'
  19. [iojs]='node'
  20. [jruby]='ruby'
  21. [pypy]='python'
  22. [ubuntu]='debian'
  23. [ubuntu-debootstrap]='debian'
  24. [mariadb]='mysql'
  25. [percona]='mysql'
  26. [percona:psmdb]='mongo'
  27. [hola-mundo]='hello-world'
  28. [hello-seattle]='hello-world'
  29. )
  30. imageTests+=(
  31. [aerospike]='
  32. '
  33. [busybox]='
  34. '
  35. [cassandra]='
  36. cassandra-basics
  37. '
  38. [celery]='
  39. '
  40. [clojure]='
  41. '
  42. [crate]='
  43. '
  44. [composer]='
  45. composer
  46. '
  47. [convertigo]='
  48. convertigo-hello-world
  49. '
  50. [debian]='
  51. debian-apt-get
  52. '
  53. [docker:dind]='
  54. docker-dind
  55. docker-registry-push-pull
  56. '
  57. [django]='
  58. '
  59. [eclipse-mosquitto]='
  60. eclipse-mosquitto-basics
  61. '
  62. [elasticsearch]='
  63. elasticsearch-basics
  64. '
  65. [elixir]='
  66. elixir-hello-world
  67. '
  68. [erlang]='
  69. erlang-hello-world
  70. '
  71. [fsharp]='
  72. fsharp-hello-world
  73. '
  74. [gcc]='
  75. gcc-c-hello-world
  76. gcc-cpp-hello-world
  77. golang-hello-world
  78. '
  79. [ghost]='
  80. ghost-basics
  81. '
  82. [golang]='
  83. golang-hello-world
  84. '
  85. [haproxy]='
  86. haproxy-basics
  87. '
  88. [haskell]='
  89. haskell-cabal
  90. haskell-stack
  91. haskell-ghci
  92. haskell-runhaskell
  93. '
  94. [haxe]='
  95. haxe-hello-world
  96. haxe-haxelib-install
  97. '
  98. [hylang]='
  99. hylang-sh
  100. hylang-hello-world
  101. '
  102. [jetty]='
  103. jetty-hello-web
  104. '
  105. [julia]='
  106. julia-hello-world
  107. julia-downloads
  108. '
  109. [logstash]='
  110. logstash-basics
  111. '
  112. [memcached]='
  113. memcached-basics
  114. '
  115. [mongo]='
  116. mongo-basics
  117. mongo-auth-basics
  118. mongo-tls-basics
  119. mongo-tls-auth
  120. '
  121. [monica]='
  122. monica-cli
  123. '
  124. [monica:apache]='
  125. monica-apache-run
  126. '
  127. [monica:fpm]='
  128. monica-fpm-run
  129. '
  130. [monica:fpm-alpine]='
  131. monica-fpm-run
  132. '
  133. [mongo-express]='
  134. mongo-express-run
  135. '
  136. [mono]='
  137. '
  138. [mysql]='
  139. mysql-basics
  140. mysql-initdb
  141. mysql-log-bin
  142. '
  143. [nextcloud]='
  144. nextcloud-cli-mysql
  145. nextcloud-cli-postgres
  146. nextcloud-cli-sqlite
  147. '
  148. [nextcloud:apache]='
  149. nextcloud-apache-run
  150. '
  151. [nextcloud:fpm]='
  152. nextcloud-fpm-run
  153. '
  154. [node]='
  155. node-hello-world
  156. '
  157. [nuxeo]='
  158. nuxeo-conf
  159. nuxeo-basics
  160. '
  161. [openjdk]='
  162. java-hello-world
  163. java-uimanager-font
  164. java-ca-certificates
  165. '
  166. [open-liberty]='
  167. open-liberty-hello-world
  168. '
  169. [percona]='
  170. percona-tokudb
  171. percona-rocksdb
  172. '
  173. [perl]='
  174. perl-hello-world
  175. '
  176. [php]='
  177. php-ext-install
  178. php-hello-world
  179. php-argon2
  180. '
  181. [php:apache]='
  182. php-apache-hello-web
  183. '
  184. [php:fpm]='
  185. php-fpm-hello-web
  186. '
  187. [plone]='
  188. plone-basics
  189. plone-addons
  190. plone-cors
  191. plone-versions
  192. plone-zeoclient
  193. plone-zeosite
  194. '
  195. [postgres]='
  196. postgres-basics
  197. postgres-initdb
  198. '
  199. [python]='
  200. python-hy
  201. python-imports
  202. python-pip-requests-ssl
  203. python-sqlite3
  204. python-stack-size
  205. '
  206. [rabbitmq]='
  207. rabbitmq-basics
  208. rabbitmq-tls
  209. '
  210. [r-base]='
  211. '
  212. [rails]='
  213. '
  214. [rapidoid]='
  215. rapidoid-hello-world
  216. rapidoid-load-balancer
  217. '
  218. [redis]='
  219. redis-basics
  220. redis-basics-tls
  221. redis-basics-config
  222. redis-basics-persistent
  223. '
  224. [redmine]='
  225. redmine-basics
  226. '
  227. [registry]='
  228. docker-registry-push-pull
  229. '
  230. [rethinkdb]='
  231. '
  232. [ruby]='
  233. ruby-hello-world
  234. ruby-standard-libs
  235. ruby-gems
  236. ruby-bundler
  237. ruby-nonroot
  238. ruby-binstubs
  239. '
  240. [rust]='
  241. rust-hello-world
  242. '
  243. [silverpeas]='
  244. silverpeas-basics
  245. '
  246. [spiped]='
  247. spiped-basics
  248. '
  249. [swipl]='
  250. swipl-modules
  251. '
  252. [swift]='
  253. swift-hello-world
  254. '
  255. [tomcat]='
  256. tomcat-hello-world
  257. '
  258. [wordpress:apache]='
  259. wordpress-apache-run
  260. '
  261. [wordpress:fpm]='
  262. wordpress-fpm-run
  263. '
  264. [znc]='
  265. znc-basics
  266. '
  267. [zookeeper]='
  268. zookeeper-basics
  269. '
  270. )
  271. globalExcludeTests+=(
  272. # single-binary images
  273. [hello-world_no-hard-coded-passwords]=1
  274. [hello-world_utc]=1
  275. [nats-streaming_no-hard-coded-passwords]=1
  276. [nats-streaming_utc]=1
  277. [nats_no-hard-coded-passwords]=1
  278. [nats_utc]=1
  279. [swarm_no-hard-coded-passwords]=1
  280. [swarm_utc]=1
  281. [traefik_no-hard-coded-passwords]=1
  282. [traefik_utc]=1
  283. # clearlinux has no /etc/passwd
  284. # https://github.com/docker-library/official-images/pull/1721#issuecomment-234128477
  285. [clearlinux_no-hard-coded-passwords]=1
  286. # alpine/slim/nanoserver openjdk images are headless and so can't do font stuff
  287. [openjdk:alpine_java-uimanager-font]=1
  288. [openjdk:slim_java-uimanager-font]=1
  289. [openjdk:nanoserver_java-uimanager-font]=1
  290. # the Swift slim images are not expected to be able to run the swift-hello-world test because it involves compiling Swift code. The slim images are for running an already built binary.
  291. # https://github.com/docker-library/official-images/pull/6302#issuecomment-512181863
  292. [swift:slim_swift-hello-world]=1
  293. # no "native" dependencies
  294. [ruby:alpine_ruby-bundler]=1
  295. [ruby:alpine_ruby-gems]=1
  296. [ruby:slim_ruby-bundler]=1
  297. [ruby:slim_ruby-gems]=1
  298. # MySQL-assuming tests cannot be run on MongoDB-providing images
  299. [percona:psmdb_percona-tokudb]=1
  300. [percona:psmdb_percona-rocksdb]=1
  301. # windows!
  302. [:nanoserver_cve-2014--shellshock]=1
  303. [:nanoserver_no-hard-coded-passwords]=1
  304. [:nanoserver_utc]=1
  305. [:windowsservercore_cve-2014--shellshock]=1
  306. [:windowsservercore_no-hard-coded-passwords]=1
  307. [:windowsservercore_utc]=1
  308. # https://github.com/docker-library/official-images/pull/2578#issuecomment-274889851
  309. [nats:nanoserver_override-cmd]=1
  310. [nats:windowsservercore_override-cmd]=1
  311. [nats-streaming:nanoserver_override-cmd]=1
  312. [nats-streaming:windowsservercore_override-cmd]=1
  313. # https://github.com/docker-library/official-images/pull/8329#issuecomment-656383836
  314. [traefik:windowsservercore_override-cmd]=1
  315. # TODO adjust MongoDB tests to use docker networks instead of links so they can work on Windows (and consider using PowerShell to generate appropriate certificates for TLS tests instead of openssl)
  316. [mongo:windowsservercore_mongo-basics]=1
  317. [mongo:windowsservercore_mongo-auth-basics]=1
  318. [mongo:windowsservercore_mongo-tls-basics]=1
  319. [mongo:windowsservercore_mongo-tls-auth]=1
  320. )