config.sh 6.1 KB

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