config.sh 6.0 KB

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