config.sh 6.2 KB

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