config.sh 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  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. '
  166. [php]='
  167. php-ext-install
  168. php-hello-world
  169. php-argon2
  170. '
  171. [php:apache]='
  172. php-apache-hello-web
  173. '
  174. [php:fpm]='
  175. php-fpm-hello-web
  176. '
  177. [plone]='
  178. plone-basics
  179. plone-addons
  180. plone-cors
  181. plone-versions
  182. plone-zeoclient
  183. plone-zeosite
  184. '
  185. [postgres]='
  186. postgres-basics
  187. postgres-initdb
  188. '
  189. [python]='
  190. python-hy
  191. python-imports
  192. python-no-pyc
  193. python-pip-requests-ssl
  194. python-sqlite3
  195. python-stack-size
  196. '
  197. [rabbitmq]='
  198. rabbitmq-basics
  199. rabbitmq-tls
  200. '
  201. [r-base]='
  202. '
  203. [rapidoid]='
  204. rapidoid-hello-world
  205. rapidoid-load-balancer
  206. '
  207. [redis]='
  208. redis-basics
  209. redis-basics-tls
  210. redis-basics-config
  211. redis-basics-persistent
  212. '
  213. [redmine]='
  214. redmine-basics
  215. '
  216. [registry]='
  217. docker-registry-push-pull
  218. '
  219. [rethinkdb]='
  220. '
  221. [ruby]='
  222. ruby-hello-world
  223. ruby-standard-libs
  224. ruby-gems
  225. ruby-bundler
  226. ruby-nonroot
  227. ruby-binstubs
  228. ruby-native-extension
  229. '
  230. [rust]='
  231. rust-hello-world
  232. '
  233. [silverpeas]='
  234. silverpeas-basics
  235. '
  236. [spiped]='
  237. spiped-basics
  238. '
  239. [swipl]='
  240. swipl-modules
  241. '
  242. [swift]='
  243. swift-hello-world
  244. '
  245. [tomcat]='
  246. tomcat-hello-world
  247. '
  248. [varnish]='
  249. varnish
  250. '
  251. [wordpress:apache]='
  252. wordpress-apache-run
  253. '
  254. [wordpress:fpm]='
  255. wordpress-fpm-run
  256. '
  257. [znc]='
  258. znc-basics
  259. '
  260. [zookeeper]='
  261. zookeeper-basics
  262. '
  263. )
  264. globalExcludeTests+=(
  265. # single-binary images
  266. [hello-world_no-hard-coded-passwords]=1
  267. [hello-world_utc]=1
  268. [nats-streaming_no-hard-coded-passwords]=1
  269. [nats-streaming_utc]=1
  270. [nats_no-hard-coded-passwords]=1
  271. [nats_utc]=1
  272. [traefik_no-hard-coded-passwords]=1
  273. [traefik_utc]=1
  274. # clearlinux has no /etc/passwd
  275. # https://github.com/docker-library/official-images/pull/1721#issuecomment-234128477
  276. [clearlinux_no-hard-coded-passwords]=1
  277. # alpine/slim/nanoserver openjdk images are headless and so can't do font stuff
  278. [openjdk:alpine_java-uimanager-font]=1
  279. [openjdk:slim_java-uimanager-font]=1
  280. [openjdk:nanoserver_java-uimanager-font]=1
  281. # 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.
  282. # https://github.com/docker-library/official-images/pull/6302#issuecomment-512181863
  283. [swift:slim_swift-hello-world]=1
  284. # The new tag kernel-slim provides the bare minimum server image for users to build upon to create their application images.
  285. # https://github.com/docker-library/official-images/pull/8993#issuecomment-723328400
  286. [open-liberty:slim_open-liberty-hello-world]=1
  287. # no "native" dependencies
  288. [ruby:alpine_ruby-bundler]=1
  289. [ruby:alpine_ruby-gems]=1
  290. [ruby:slim_ruby-bundler]=1
  291. [ruby:slim_ruby-gems]=1
  292. # MySQL-assuming tests cannot be run on MongoDB-providing images
  293. [percona:psmdb_percona-tokudb]=1
  294. [percona:psmdb_percona-rocksdb]=1
  295. # windows!
  296. [:nanoserver_no-hard-coded-passwords]=1
  297. [:nanoserver_utc]=1
  298. [:windowsservercore_no-hard-coded-passwords]=1
  299. [:windowsservercore_utc]=1
  300. # https://github.com/docker-library/official-images/pull/2578#issuecomment-274889851
  301. [nats:nanoserver_override-cmd]=1
  302. [nats:windowsservercore_override-cmd]=1
  303. [nats-streaming:nanoserver_override-cmd]=1
  304. [nats-streaming:windowsservercore_override-cmd]=1
  305. # https://github.com/docker-library/official-images/pull/8329#issuecomment-656383836
  306. [traefik:windowsservercore_override-cmd]=1
  307. # 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)
  308. [mongo:nanoserver_mongo-basics]=1
  309. [mongo:nanoserver_mongo-auth-basics]=1
  310. [mongo:nanoserver_mongo-tls-basics]=1
  311. [mongo:nanoserver_mongo-tls-auth]=1
  312. [mongo:windowsservercore_mongo-basics]=1
  313. [mongo:windowsservercore_mongo-auth-basics]=1
  314. [mongo:windowsservercore_mongo-tls-basics]=1
  315. [mongo:windowsservercore_mongo-tls-auth]=1
  316. )