config.sh 6.1 KB

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