config.sh 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  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. [redis]='
  217. redis-basics
  218. redis-basics-tls
  219. redis-basics-config
  220. redis-basics-persistent
  221. '
  222. [redmine]='
  223. redmine-basics
  224. '
  225. [registry]='
  226. docker-registry-push-pull
  227. '
  228. [rethinkdb]='
  229. '
  230. [ruby]='
  231. ruby-hello-world
  232. ruby-standard-libs
  233. ruby-gems
  234. ruby-bundler
  235. ruby-nonroot
  236. ruby-binstubs
  237. ruby-native-extension
  238. '
  239. [rust]='
  240. rust-hello-world
  241. '
  242. [silverpeas]='
  243. silverpeas-basics
  244. '
  245. [spiped]='
  246. spiped-basics
  247. '
  248. [swipl]='
  249. swipl-modules
  250. '
  251. [swift]='
  252. swift-hello-world
  253. '
  254. [tomcat]='
  255. tomcat-hello-world
  256. '
  257. [varnish]='
  258. varnish
  259. '
  260. [wordpress:apache]='
  261. wordpress-apache-run
  262. '
  263. [wordpress:fpm]='
  264. wordpress-fpm-run
  265. '
  266. [znc]='
  267. znc-basics
  268. '
  269. [zookeeper]='
  270. zookeeper-basics
  271. '
  272. )
  273. globalExcludeTests+=(
  274. # single-binary images
  275. [hello-world_no-hard-coded-passwords]=1
  276. [hello-world_utc]=1
  277. [nats-streaming_no-hard-coded-passwords]=1
  278. [nats-streaming_utc]=1
  279. [nats_no-hard-coded-passwords]=1
  280. [nats_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. # The new tag kernel-slim provides the bare minimum server image for users to build upon to create their application images.
  294. # https://github.com/docker-library/official-images/pull/8993#issuecomment-723328400
  295. [open-liberty:slim_open-liberty-hello-world]=1
  296. # no "native" dependencies
  297. [ruby:alpine_ruby-bundler]=1
  298. [ruby:alpine_ruby-gems]=1
  299. [ruby:slim_ruby-bundler]=1
  300. [ruby:slim_ruby-gems]=1
  301. # MySQL-assuming tests cannot be run on MongoDB-providing images
  302. [percona:psmdb_percona-tokudb]=1
  303. [percona:psmdb_percona-rocksdb]=1
  304. # windows!
  305. [:nanoserver_no-hard-coded-passwords]=1
  306. [:nanoserver_utc]=1
  307. [:windowsservercore_no-hard-coded-passwords]=1
  308. [:windowsservercore_utc]=1
  309. # https://github.com/docker-library/official-images/pull/2578#issuecomment-274889851
  310. [nats:nanoserver_override-cmd]=1
  311. [nats:windowsservercore_override-cmd]=1
  312. [nats-streaming:nanoserver_override-cmd]=1
  313. [nats-streaming:windowsservercore_override-cmd]=1
  314. # https://github.com/docker-library/official-images/pull/8329#issuecomment-656383836
  315. [traefik:windowsservercore_override-cmd]=1
  316. [traefik:nanoserver_override-cmd]=1
  317. # 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)
  318. [mongo:nanoserver_mongo-basics]=1
  319. [mongo:nanoserver_mongo-auth-basics]=1
  320. [mongo:nanoserver_mongo-tls-basics]=1
  321. [mongo:nanoserver_mongo-tls-auth]=1
  322. [mongo:windowsservercore_mongo-basics]=1
  323. [mongo:windowsservercore_mongo-auth-basics]=1
  324. [mongo:windowsservercore_mongo-tls-basics]=1
  325. [mongo:windowsservercore_mongo-tls-auth]=1
  326. )