config.sh 6.0 KB

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