├── LICENSE
├── README.md
├── pg14_amd64
├── .dockerignore
├── 1.sh
├── 2.sh
├── 3.sh
├── 4.sh
├── 5.sh
└── Dockerfile
└── pg14_arm64
├── .dockerignore
├── 1.sh
├── 2.sh
├── 3.sh
├── 4.sh
├── 5.sh
└── Dockerfile
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # postgresql_docker_builder
2 | Build PostgreSQL (with 200+ extenstions and tools) DuckDB MySQL and so on into One docker image. It used for learn database easily only. PostgreSQL is stable version, but some extension or tools not, please used carefully by yourself.
3 |
4 | `pg14_arm64` directory is used to build docker image for ARM64 chip.
5 |
6 | `pg14_amd64` directory is used to build docker image for AMD64 chip.
7 |
8 | # How to use this image?
9 | ## AMD64 chip's OS
10 | ```
11 | # 拉取镜像, 第一次拉取一次即可. 或者需要的时候执行, 将更新到最新镜像版本.
12 | docker pull registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts
13 |
14 | # 启动容器
15 | docker run --platform linux/amd64 -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts
16 |
17 | ##### 如果你想学习备份恢复、修改参数等需要重启数据库实例的case, 换个启动参数, 使用参数--entrypoint将容器根进程换成bash更好. 如下:
18 | docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g --entrypoint /bin/bash registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts
19 | ##### 以上启动方式需要进入容器后手工启动数据库实例: su - postgres; pg_ctl start;
20 |
21 | # 进入容器
22 | docker exec -ti pg bash
23 |
24 | # 连接数据库
25 | psql
26 | ```
27 |
28 | ## ARM64 chip's OS
29 | ```
30 | # 拉取镜像, 第一次拉取一次即可. 或者需要的时候执行, 将更新到最新镜像版本.
31 | docker pull registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64
32 |
33 | # 启动容器
34 | docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64
35 |
36 | ##### 如果你想学习备份恢复、修改参数等需要重启数据库实例的case, 换个启动参数, 使用参数--entrypoint将容器根进程换成bash更好. 如下:
37 | docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g --entrypoint /bin/bash registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64
38 | ##### 以上启动方式需要进入容器后手工启动数据库实例: su - postgres; pg_ctl start;
39 |
40 | # 进入容器
41 | docker exec -ti pg bash
42 |
43 | # 连接数据库
44 | psql
45 | ```
46 |
47 | # The detail info for this docker builder script?
48 | The info contain how to build docker image, and PostgreSQL extensions and tools description.
49 |
50 | [《amd64》](https://github.com/digoal/blog/blob/master/202307/20230710_03.md)
51 |
52 | [《arm64》](https://github.com/digoal/blog/blob/master/202308/20230814_02.md)
53 |
54 | ### image infomation until 20231208
55 | extensions:
56 | ```
57 | Display all 210 possibilities? (y or n)
58 | address_standardizer parquet_fdw pgtelemetry
59 | "address_standardizer-3" parray_gin pg_tiktoken
60 | address_standardizer_data_us pg4ml pg_track_settings
61 | "address_standardizer_data_us-3" pgagent pg_trgm
62 | adminpack pgaudit pgtt
63 | age pgautofailover pg_utility_trigger_functions
64 | aggs_for_vecs pg_bigm pg_uuidv7
65 | amcheck pg_bm25 pg_variables
66 | anon pg_buffercache pg_visibility
67 | autoinc pg_bulkload pg_wait_sampling
68 | aws_s3 pg_cron pipelinedb
69 | bloom pgcrypto pldbgapi
70 | btree_gin pg_curl pljava
71 | btree_gist pg_dbms_stats pllua
72 | citext pgdd plluau
73 | citus pg_dirtyread plpgsql_check
74 | citus_columnar pgfaceting plprofiler
75 | columnar pgfincore plproxy
76 | credcheck pg_freespacemap plpython3u
77 | cube pggraphblas plr
78 | datasketches pg_hint_plan plrust
79 | dblink pg_idkit pointcloud
80 | dblink_plus pg_ivm pointcloud_postgis
81 | ddlx pg_jieba postgis
82 | decoderbufs pg_jobmon "postgis-3"
83 | dict_int pgjwt postgis_raster
84 | dict_xsyn pgmemcache "postgis_raster-3"
85 | duckdb_fdw pg_migrate postgis_sfcgal
86 | earthdistance pgmp "postgis_sfcgal-3"
87 | embedding pg_nanoid postgis_tiger_geocoder
88 | extra_window_functions pg_net "postgis_tiger_geocoder-3"
89 | file_fdw pg_onnx postgis_topology
90 | first_last_agg pg_partman "postgis_topology-3"
91 | fuzzystrmatch pgpcre postgres_fdw
92 | gevel pgpool_adm powa
93 | h3 pgpool_recovery prefix
94 | h3_postgis pgpool_regclass pre_prepare
95 | hdfs_fdw pg_prewarm prioritize
96 | hll pg_proctab q3c
97 | hnsw pg_profile quantile
98 | hstore pg_qualstats rdkit
99 | hstore_pllua pg_query_rewrite refint
100 | hstore_plluau pg_rational roaringbitmap
101 | hstore_plpython3u pg_repack rum
102 | http pgroonga seg
103 | hypopg pgroonga_database smlar
104 | icu_ext pgrouting sqlite_fdw
105 | imgsmlr pgrowlocks sslinfo
106 | insert_username pg_safer_settings svector
107 | intagg pg_safer_settings_table_dependent_extension tablefunc
108 | intarray pg_safer_settings_table_dependent_subextension table_log
109 | ip4r pg_search tcn
110 | isn pgsentinel tdigest
111 | jsonb_plpython3u pg_show_plans tds_fdw
112 | jsquery pg_similarity temporal_tables
113 | lantern pgsodium timescaledb
114 | lantern_extras pg_sparse timescaledb_toolkit
115 | lo pg_sphere toastinfo
116 | ltree pg_squeeze tsm_system_rows
117 | ltree_plpython3u pg_stat_kcache tsm_system_time
118 | mimeo pg_stat_monitor uint
119 | mobilitydb pg_stat_statements ulid
120 | moddatetime pgstattuple unaccent
121 | mongo_fdw pg_statviz unit
122 | mysql_fdw pg_store_plans "uuid-ossp"
123 | ogr_fdw pg_subtrans_infos vector
124 | old_snapshot pg_subxact_counters vops
125 | oracle_fdw pg_surgery xml2
126 | orafce pgtap zhparser
127 | pageinspect pg_task zson
128 | ```
129 |
130 | ### tools and extensions description
131 |
132 | #### 集成了哪些插件?
133 | 插件的详细功能和用法请参考:
134 | - [《未来数据库方向 - 以及PostgreSQL 有价值的插件、可改进功能、开放接口 (202005)》](../202005/20200527_06.md)
135 |
136 | 1、PG 14自带的所有插件.
137 |
138 | 2、额外安装的插件或工具
139 |
140 | 类型增强
141 | - pgmp, PostgreSQL Multiple Precision Arithmetic extension, 支持GMP library, 高性能表达decimal类型.
142 | - unit, 支持很多国际单位的类型
143 | - pg_uuidv7, A tiny Postgres extension to create version 7 UUIDs
144 | - zson, ZSON is a PostgreSQL extension for transparent JSONB compression
145 | - uint, 无符号整型.
146 | - nanoid, nanoid类型.
147 | - ulid, 半高uuid类型.
148 | - snowflake, snowflakeID 分布式数据库全局唯一ID生成器, 比UUID效率高.
149 |
150 | 函数增强
151 | - extra-window-functions, 扩展窗口函数
152 | - first-last-agg, 扩展聚合函数
153 | - tdigest, 扩展窗口、聚合函数
154 | - rational, 扩展插值算法和函数
155 | - orafce, 扩展Oracle兼容性
156 | - aggs_for_vecs, 数组类型聚合函数扩展.
157 | - quantile, 统计分析相关聚合函数扩展.
158 | - pgjwt, JSON 值转储格式: JSON Web Tokens
159 | - pg_idkit, 集成了大量UUID方法和函数.
160 | - pgpcre, 正则. This is a module for PostgreSQL that exposes Perl-compatible regular expressions (PCRE) functionality as functions and operators.
161 |
162 | 近似统计分析
163 | - hll, 近似分析, 例如滑动窗口UV, 短视频场景存储已读列表+快速过滤已读视频
164 | - datasketches, 近似统计算法库
165 |
166 | 标签圈选
167 | - smlar, 标签相似搜索
168 | - roaringbitmap, 标签圈选
169 | - pgfaceting, 基于rb index的快速降维分析插件(例如任意条件的UV分析, 滑动窗口分析等)
170 |
171 | 存储引擎、分析加强:
172 | - citus, 分布式和列存储
173 | - columnar, Hydra Columnar extension. 列存储引擎.
174 | - vops, 瓦片存储和向量化计算
175 | - orioledb, 基于UNDO机制的存储引擎. (未集成.)
176 | - zedstore, 行列混合存储引擎. (未集成.)
177 | - pg_cryogen, appendonly的压缩存储引擎. (未集成.)
178 | - pg_ivm, 增量刷新物化视图
179 |
180 | 多值列索引扩展加速
181 | - rum, 多值列+标量复合搜索加速
182 | - parray_gin, 多值列元素值模糊搜索
183 |
184 | 多模型业务场景
185 | - rdkit, 化学类型+算法+索引
186 | - timescaledb, 时序
187 | - pggraphblas, 图式关系加速搜索
188 | - age, 图式关系搜索(兼容cypherQL语法).
189 | - madlib, 机器学习分析库
190 | - pg_variables, 会话或事务级内存变量, 例如用于计数器、需要在会话|事务中存储临时值的场景.
191 | - temporal_tables, 自动按字段时间归档历史数据.
192 | - pgtt, 全局临时表, 类似Oracle 全局临时表的风格.
193 | - pipelinedb, 流计算.
194 | - pg4ml, 使用 plpgsql 编写的机器学习框架.
195 | - PGMQ, pg消息队列.
196 |
197 | 空间业务场景
198 | - pgrouting, 路由算法
199 | - pgrouting-doc
200 | - pgrouting-scripts
201 | - pgsphere, 空间类型+索引
202 | - pointcloud, 点云
203 | - q3c, 空间类型+索引
204 | - postgis-3, 丰富的空间类型+算法+函数接口+索引
205 | - postgis-3-scripts
206 | - ip4r, IP转地理位置信息
207 | - h3, h3_postgis, uber开源的基于H3模型的地图相关插件.
208 | - MobilityDB, An open source geospatial trajectory data management & analysis platform. https://github.com/MobilityDB/MobilityDB
209 |
210 | 向量搜索
211 | - similarity, 近似算法, 类型+索引
212 | - imgsmlr, 图像搜索, 类型+索引
213 | - pgvector, 向量搜索, 类型+索引(ivfflat、hnsw)
214 | - pg_sparse, paradedb开源. 稀疏向量搜索. 使用rust编写.
215 | - svector, paradedb开源. 稀疏向量搜索(就是pg_sparse, 更名为svector). 使用c编写. https://docs.paradedb.com/blog/introducing_sparse
216 | - hnsw, 向量搜索, 类型+索引(hnsw)
217 | - pg_embedding, 向量搜索, 类型+索引(hnsw)
218 | - lantern, 向量搜索, 类型+索引(usearch implemented hnsw)
219 | - lantern_extras, lantern辅助插件: 数据库内置大模型, 外接大模型, 文本|图像向量化, 加速向量索引build等.
220 | - vectorize, 结合pgvector和OpenAI的应用解决方案型插件, 实现db4ai, ai4db的应用.
221 |
222 | 文本场景增强
223 | - prefix, 前缀范围模型
224 | - groonga, 支持wchar的任意模糊搜索
225 | - pg_bigm, 增强pg_trgm模糊搜索
226 | - pg_jieba, 结巴中文分词
227 | - zhparser, scws中文分词
228 | - pg_bm25, paradedb开源. bm25(elastic search目前使用的相关算法)支持, 大数据量文本搜索比传统tsvector,tsrank提升20x性能.
229 | - pg_search, paradedb开源. 通过 bm25+hnsw 支持bm25和向量相似文本搜索
230 |
231 | 数据融合, 冷热分离
232 | - mongo_fdw, 读写mongo数据源
233 | - parquet_s3_fdw, 读写s3,oss对象存储和parquet文件. (未集成, 通过duckdb_fdw可以读写s3, aliyun oss, 更加快捷)
234 | - mysql-fdw, 读写mysql数据源
235 | - ogr-fdw, 基于ogr的通用数据源读写插件
236 | - oracle-fdw, 读写oracle数据源
237 | - tds-fdw, 读写ms sql数据源
238 | - dblink_plus, mysql,sqlite3,oracle的dblink
239 | - duckdb_fdw, 读写duckdb数据源. 通过duckdb_fdw还可以读写存放在s3的csv, parquet文件.
240 | - sqlite_fdw, 读写sqlite3
241 | - parquet_fdw, 读parquet文件.
242 | - hdfs_fdw, 读写hive, spark数据源
243 | - pgmemcache, 直接的memcache控制函数库
244 | - pg_curl, 通过curl支持http,ftp,https等网络协议. 将远程数据加载到数据库中.
245 | - pg_net, 异步HTTP调用接口.
246 | - pgsql-http, HTTP 调用接口.
247 | - pg2arrow , 将pg sql结果转换为arrow格式的数据文件. 适合与其他arrow生态的数据分析产品、DB交换数据, 融入大数据生态, 加速数据分析.
248 | - aws_s3, 读写aws s3对象存储.
249 | - decoderbufs, 逻辑复制decoding, logical decoder output plugin to deliver data as Protocol Buffers
250 |
251 | 扩展协议, 兼容其他产品
252 | - FerretDB, 支持mongodb协议, 可使用mongodb客户端连接. (未集成)
253 | - babelfish, 支持sql server协议, 可使用sqlserver客户端连接. (未集成)
254 | - Apache Arrow Flight SQL adapter, arrow 协议, 可使用arrow driver连接. (未集成, 需PG 15及以上版本.)
255 |
256 | 存储过程和函数语言增强
257 | - jsquery, 增强json语法查询库
258 | - pldebugger, 调试plpgsql函数
259 | - plpgsql-check, 预检查plpgsql函数
260 | - pljava, java存储过程和函数语言
261 | - pllua, lua存储过程和函数语言
262 | - plproxy, 代理(通常用于sharding和并行数据聚合访问场景)
263 | - plv8, google v8存储过程和函数语言. (未集成, 未来可以通过apt安装)
264 | - plpython3, python存储过程和函数语言
265 | - plr, R存储过程和函数语言
266 | - plprofiler, 存储过程和函数的性能分析功能
267 | - plrust, rust存储过程语言支持
268 |
269 | 安全增强
270 | - postgresql_anonymizer, 敏感信息遮蔽
271 | - pgsodium, 敏感信息遮蔽以及sodium加密库函数
272 | - credcheck, 强制约束用户密码复杂度
273 |
274 | 数据库管理、审计、性能优化等
275 | - powa, 索引推荐, 等待事件分析, 命中率, 配置变更跟踪等
276 | - hypopg, 虚拟索引, 索引推荐
277 | - pg-qualstats, 索引推荐
278 | - pg-stat-kcache, 跟踪cpu、文件系统真实读写行为
279 | - pg-wait-sampling, 等待事件采样分析
280 | - show-plans, 执行过程中的SQL执行计划查询
281 | - pg_hint_plan, 强制设定SQL执行计划
282 | - plantuner, 增加了一些参数用来控制SQL执行计划
283 | - pg_store_plans, 保存SQL执行计划
284 | - pg_plan_inspector, 复杂SQL执行计划优化修正插. 使用机器学习的方法对收集到的SQL和执行计划等信息进行分析, 从而提升性能. 通过sql安装, 没有extension control file
285 | - pg_stat_monitor, 保存数据库运行时统计信息快照, 用于分析性能
286 | - pg_statviz, 保存统计信息快照, 使用matplotlib绘图.
287 | - pg_profile, 使用pg_stat_statements, pg_stat_kcache的统计信息打快照并对快照进行分析. 类似[awr](https://zubkov-andrei.github.io/pg_profile/report_examples/pg15.html). 不过我觉得perf insight和pg_stat_monitor更好用.
288 | - pg_statsinfo, PG数据库监控工具, 支持按快照选取分析系统运行状态, 类似Oracle statspark.
289 | - pg_stats_reporter, pg_statsinfo报告的网页呈现, 更加美观, 类似awr效果.
290 | - pgtelemetry, 一些DBA常用的监控数据库和操作系统运行状态的视图.
291 | - pgfincore, 修改数据文件的page cache行为
292 | - pg_repack, 几乎不影响业务的收缩膨胀的表和索引浪费的存储空间
293 | - pg_migrate, online DDL, fork自pg_repack, 实现最短时间持有排他锁的DDL, DDL过程中支持DML.
294 | - squeeze, 几乎不影响业务的收缩膨胀的表和索引浪费的存储空间, 支持设置阈值, 自动调度.
295 | - pgagent, 定时任务
296 | - pg_cron, 定时任务
297 | - pg_task, 数据库后台任务管理. 类似oracle dbms_jobs
298 | - pgaudit, 审计用户行为
299 | - tablelog, 审计表的修改过程
300 | - dirtyread, 脏读
301 | - wal2json, WAL日志转换为json
302 | - pg_bulkload, 高速导入数据
303 | - sqlbench, 压测tpc-c
304 | - pgxnclient, pgxn插件管理
305 | - icu-ext, 扩展的icu字符集
306 | - pg_plan_filter, 基于cbo的限制插件, 例如限制某些用户执行cost大于指定值的SQL. 防止用户"捣乱".
307 | - pg_query_rewrite, 自定义查询重写规则的插件.
308 | - pg_track_settings, 跟踪审计GUC参数设置.
309 | - pg_utility_trigger_functions, 常用功能场景的触发器函数.
310 | - pg_safer_settings, 记录guc参数设置, 并增加一些基于角色的guc 参数setting权限控制和审计.
311 | - ddlx, 生成数据库对象的create语句的插件
312 | - pg_dbms_stats, 统计信息快照, 使用统计信息快照生成执行计划. 类似基线, 确保执行计划的普遍最优性.
313 | - pg_rman, 块级别数据库增量备份, 根据数据块的LSN判断自上次备份后是否被修改. 类似Oracle incremental backup.
314 | - online_analyze, 事务中分析DML后的统计信息, 适合OLAP跑复杂任务场景的及时统计信息刷新, 用于确保复杂SQL的执行计划正确性.
315 | - gevel, 观察gin,gist,sp-gist索引内部结构的插件.
316 | - toastinfo, 观察toast存储结构
317 | - pg_later, PG 异步SQL执行插件.
318 | - mimeo, 表级别复制(逻辑复制前的方法, 现在不建议使用)
319 | - pre_prepare, 数据库端prepared statement自动保存, 便于pool调用.
320 | - prioritize, 结合OS PID task优先级功能, 设置pg backend pid cpu调度优先级
321 | - pgsentinel, postgresql extension providing Active session history
322 | - pgwatch2, PostgreSQL metrics monitor/dashboard. 暂未集成
323 | - pg_top, postgresql的top命令, 类似linux top.
324 | - pgcenter, 类似pg_top, 可一屏显示多个实例的top情况. pgCenter is a command line admin tool for PostgreSQL.
325 | - pg_proctab, 配合pg_top使用, 观察远程postgresql的top资源.
326 | - pgbadger, A fast PostgreSQL Log Analyzer. http://pgbadger.darold.net/
327 | - pg_auto_failover, Postgres extension and service for automated failover and high-availability. https://github.com/hapostgres/pg_auto_failover
328 | - pghero, A performance dashboard for Postgres. https://github.com/ankane/pghero
329 | - ora2pg, oracle,mysql迁移到postgresql的工具
330 | - pgloader, 使用fdw读取其他数据库的数据, 并快速迁移到PostgreSQL的迁移工具
331 | - pgreplay, 回放postgresql log的工具. 需要开启log_statements.
332 | - pg_subtrans_infos, 查看子事务信息
333 | - pg_subxact_counters, 统计子事务
334 | - pgbackrest, 备份管理工具.
335 | - elephant-shed-pgbackrest, PG备份管理工具pgbackrest web控制台, 同时集成了一些有趣的工具
336 | - PgDD, PostgreSQL Data Dictionary for 开发者, 快速了解数据库概貌. https://github.com/rustprooflabs/pgdd
337 | - pg_partman, Partition management extension for PostgreSQL
338 | - pg_filedump, pg_filedump is a utility to format PostgreSQL heap/index/control files into a human-readable form.
339 | - pg_partman, Partition management extension for PostgreSQL
340 | - pg_jobmon, PostgreSQL extension which provides persistent logging within transactions and functions. 事务即使回滚也能留下数据, 使用的是dblink外部事务实现.
341 | - pgroll, PostgreSQL zero-downtime migrations made easy
342 |
343 | 连接池和读写分离
344 | - pgpool2, 连接池和读写分离
345 | - pgagroal, 高性能连接池
346 | - pgbouncer, 高性能连接池
347 | - pgcat, 连接池和读写分离,sharding等特性, 未来发展前景比较可观
348 |
349 | 嵌入式OLAP数据库
350 | - DuckDB, 嵌入式的OLAP库, 功能非常强大性能非常好. 兼容SQLite3语法和PostgreSQL语法.
351 |
352 | 未来可能还会新增的插件或产品(你有什么想要的插件可以在issue中留言):
353 | ```
354 | https://neon.tech/docs/extensions/pg-extensions
355 |
356 | PostgreSQL协议兼容分布式数据库:
357 | https://yugabyte.com/
358 | https://github.com/cockroachdb/cockroach
359 |
360 | 类似aws aurora架构的云原生开源数据库, 修改了pg的page server, fd, wal等接口.
361 | https://neon.tech/
362 |
363 | OrioleDB is an attempt to improve PostgreSQL by using lock-free page reading, undo logging, row-level WAL and more.
364 | https://www.orioledata.com/
365 |
366 | https://github.com/supabase/postgres
367 |
368 | Postgres extension for ulid
369 | https://github.com/pksunkara/pgx_ulid
370 |
371 | PostgreSQL implementation of JWT (JSON Web Tokens)
372 | https://github.com/michelp/pgjwt
373 |
374 | Short unique id generator for PostgreSQL, using hashids
375 | https://github.com/iCyberon/pg_hashids
376 |
377 | GraphQL support for PostgreSQL
378 | https://github.com/supabase/pg_graphql
379 |
380 | PostgreSQL extension providing JSON Schema validation
381 | https://github.com/supabase/pg_jsonschema
382 |
383 | A tiny Postgres extension to create version 7 UUIDs
384 | https://github.com/fboulnois/pg_uuidv7
385 |
386 | Build Postgres Extensions with Rust!
387 | https://github.com/pgcentralfoundation/pgrx
388 |
389 | Parquet S3 Foreign Data Wrapper for PostgresSQL
390 | https://github.com/pgspider/parquet_s3_fdw
391 |
392 | PostgresML
393 | https://github.com/postgresml/postgresml
394 |
395 | supavisor, A cloud-native, multi-tenant Postgres connection pooler.
396 | https://github.com/supabase/supavisor
397 |
398 | FerretDB, 前端使用mongo 协议, 后端使用PostgreSQL或SQLite3的数据库
399 | https://github.com/FerretDB/FerretDB
400 |
401 | Apache Arrow Flight SQL adapter for PostgreSQL
402 | https://arrow.apache.org/blog/2023/09/13/flight-sql-postgresql-0.1.0-release/
403 | https://github.com/apache/arrow-flight-sql-postgresql
404 |
405 | babelfish, sql server wire protocol
406 | https://babelfishpg.org/
407 | https://github.com/babelfish-for-postgresql/babelfish_compass/releases
408 |
409 | Ora2Pg, 迁移Oracle, MySQL到PostgreSQL的工具
410 | https://github.com/darold/ora2pg
411 |
412 | pg_later, PG 异步SQL执行插件.
413 | 已集成到docker image
414 | https://github.com/tembo-io/pg_later
415 |
416 | PGMQ, pg消息队列
417 | 已集成到docker image
418 | https://github.com/tembo-io/pgmq
419 | https://tembo.io/blog/introducing-pgmq/#using-pgmq
420 |
421 | hydra, PG列存储.
422 | 已集成到docker image
423 | https://hydra-so.notion.site/Hydra-1-0-beta-318504444825401e8ce21796dcadd589
424 | https://github.com/hydradatabase/hydra
425 |
426 | 俄罗斯航空数据集, Demonstration Database
427 | https://postgrespro.com/community/demodb
428 |
429 | 在PostgreSQL中运行wasm binary.
430 | https://github.com/wasmerio/wasmer-postgres
431 |
432 | 使用wasm技术, 将PostgreSQL运行在浏览器虚拟机中. (About A PostgresQL server running in your browser)
433 | https://github.com/snaplet/postgres-wasm
434 | https://supabase.com/blog/postgres-wasm
435 |
436 | lsm3, LSM tree implementation based on standard B-Tree
437 | https://github.com/postgrespro/lsm3
438 |
439 | sr_plan, Save and restore query plans in PostgreSQL
440 | https://github.com/postgrespro/sr_plan
441 |
442 | pg_onnx, 开放的神经网络集市(onnx)在PG中的调用接口. 类似postgresml, 阿里云灵积这样的大模型集市, 在PG内部通过封装好的函数调用AI能力.
443 | 已集成到docker image
444 | https://github.com/kibae/pg_onnx
445 |
446 | onnx model, 已有大模型
447 | 已集成到docker image
448 | https://github.com/onnx/models
449 | https://onnxruntime.ai/
450 |
451 | pg4ml, 开放的神经网络算法库. 郭铁成老师主导, 内容非常丰富.
452 | 已集成到docker image
453 | https://gitee.com/seanguo_007/plpgsql_pg4ml
454 |
455 | orc_fdw, 访问ORC格式列存储文件
456 | https://github.com/HighgoSoftware/orc_fdw
457 |
458 | zombodb, 使用elastic search作为外部索引.
459 | https://github.com/zombodb/zombodb
460 |
461 | pgwatch2, PostgreSQL metrics monitor/dashboard
462 | https://github.com/cybertec-postgresql/pgwatch2
463 |
464 | pg_timetable, Advanced scheduling for PostgreSQL
465 | https://www.cybertec-postgresql.com/en/products/pg_timetable/
466 | https://github.com/cybertec-postgresql/pg_timetable/releases
467 | https://github.com/cybertec-postgresql/pg_timetable
468 | https://www.cybertec-postgresql.com/en/introducing-pg_timetable-v5-6-delayed-chains-and-error-handling/
469 |
470 | partoni, A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
471 | https://github.com/zalando/patroni
472 |
473 | walminer, 解析wal的工具
474 | https://gitee.com/movead/XLogMiner
475 |
476 | pgroll, PostgreSQL zero-downtime migrations made easy
477 | 已集成到docker image
478 | https://xata.io/blog/pgroll-schema-migrations-postgres
479 | https://github.com/xataio/pgroll
480 | https://github.com/xataio/pgroll/releases
481 |
482 | pgmonitor, crunchydata提供的监控解决方案
483 | https://access.crunchydata.com/documentation/pgmonitor/latest/
484 | https://github.com/CrunchyData/pgmonitor
485 | ```
486 |
487 |
--------------------------------------------------------------------------------
/pg14_amd64/.dockerignore:
--------------------------------------------------------------------------------
1 | logs/
2 |
--------------------------------------------------------------------------------
/pg14_amd64/1.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | cd /tmp
5 | sed -i "s@http://\(deb\|security\).debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
6 | apt-get update
7 | apt-get reinstall -y apt-transport-https ca-certificates
8 | sed -i "s@http://mirrors.aliyun.com@https://mirrors.aliyun.com@g" /etc/apt/sources.list
9 | apt-get update
10 | apt-get install -y lsb-release wget vim man
11 |
12 | # RUN echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
13 | echo "deb https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
14 | apt-get install -y gnupg2
15 |
16 | # RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
17 | wget --quiet -O - https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/apt/ACCC4CF8.asc | apt-key add -
18 | apt-get update
19 | apt-get install -y locales
20 | localedef -i en_US -f UTF-8 en_US.UTF-8
21 |
22 | apt-get install -y curl libicu-dev icu-devtools libbison-dev libfl-dev git libreadline-dev libedit-dev g++ make cmake man-db dnsutils clang libssl-dev default-jdk strace gdb libsqlite3-dev lsof blktrace
23 | apt-get install -y unixodbc unixodbc-dev bash-completion m4 python3-distutils python glibc-source zlib1g-dev pkg-config default-jre openjdk-17-jdk openjdk-17-jdk-headless
24 | apt-get install -y postgresql-14 postgresql-client-14 postgresql-server-dev-14 postgresql-doc-14
25 | apt-get install -y postgresql-14-dirtyread postgresql-14-extra-window-functions postgresql-14-first-last-agg postgresql-14-hll postgresql-14-hypopg
26 | apt-get install -y postgresql-14-ip4r postgresql-14-mysql-fdw postgresql-14-jsquery postgresql-14-ogr-fdw postgresql-14-oracle-fdw postgresql-14-pgmemcache
27 | apt-get install -y postgresql-14-pljava postgresql-14-pllua postgresql-14-plpgsql-check postgresql-14-plproxy postgresql-14-prefix postgresql-14-rational
28 | apt-get install -y postgresql-14-rdkit postgresql-14-orafce postgresql-14-pg-qualstats postgresql-14-pg-stat-kcache
29 | apt-get install -y postgresql-14-pg-wait-sampling postgresql-14-pgfincore postgresql-14-pgaudit postgresql-14-pgpool2 postgresql-14-pgrouting postgresql-14-pgrouting-doc
30 | apt-get install -y postgresql-14-pgrouting-scripts postgresql-14-pgsphere postgresql-14-pgvector postgresql-14-pldebugger postgresql-14-pointcloud postgresql-14-plr
31 | apt-get install -y postgresql-14-postgis-3 postgresql-14-postgis-3-scripts postgresql-14-powa powa-collector postgresql-14-q3c postgresql-14-repack
32 | apt-get install -y postgresql-14-rum postgresql-14-show-plans postgresql-14-similarity postgresql-14-tablelog postgresql-14-tdigest postgresql-14-wal2json
33 | apt-get install -y postgresql-14-tds-fdw postgresql-14-plprofiler postgresql-14-cron
34 | apt-get install -y pgagroal pgpool2 pgbouncer pgxnclient pgagent postgresql-plpython3-14 postgresql-14-icu-ext libpq-dev pgreplay pgbackrest pgbackrest-doc elephant-shed-pgbackrest postgresql-14-partman
35 |
36 | # pghero 目前仅支持x86版本
37 | cd /tmp
38 | dpkg -i pghero_3.4.0-1701207987.0382b812.bullseye_amd64.deb
39 |
40 | echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | tee /etc/apt/sources.list.d/timescaledb.list
41 | wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
42 | apt-get update
43 | apt-get install -y timescaledb-2-postgresql-14
44 |
45 | wget https://packages.groonga.org/debian/groonga-apt-source-latest-bullseye.deb
46 | apt-get install -y -V ./groonga-apt-source-latest-bullseye.deb
47 | apt-get update
48 | apt-get install -y postgresql-14-pgdg-pgroonga
49 |
50 | apt-get install -y postgresql-14-credcheck postgresql-14-decoderbufs postgresql-14-mimeo postgresql-14-pgmp postgresql-14-preprepare postgresql-14-prioritize postgresql-14-squeeze postgresql-14-toastinfo postgresql-14-unit pgbadger pg-auto-failover-cli postgresql-14-auto-failover net-tools apt-utils ora2pg pgloader
51 |
52 | # https://dev.mysql.com/downloads/repo/apt/
53 | cd /tmp
54 | wget -T 36000 -t 0 --waitretry=5 https://repo.mysql.com//mysql-apt-config_0.8.29-1_all.deb
55 | dpkg -i mysql-apt-config_0.8.29-1_all.deb
56 | # https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/ add gpg key
57 | apt-key adv --keyserver pgp.mit.edu --recv-keys A8D3785C
58 | apt-get update
59 | apt-get install -y mysql-server
60 |
--------------------------------------------------------------------------------
/pg14_amd64/2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | export ROOT_HOME=/root
5 | echo "# add by digoal" >>$ROOT_HOME/.bashrc
6 | echo "alias rm='rm -i'" >>$ROOT_HOME/.bashrc
7 | echo "alias cp='cp -i'" >>$ROOT_HOME/.bashrc
8 | echo "alias ll='ls -larth'" >>$ROOT_HOME/.bashrc
9 | echo "alias mv='mv -i'" >>$ROOT_HOME/.bashrc
10 | echo "export PGHOME=/usr/lib/postgresql/14" >>$ROOT_HOME/.bashrc
11 | echo "export PATH=\$PGHOME/bin:\$PATH" >>$ROOT_HOME/.bashrc
12 | echo "export LD_LIBRARY_PATH=\$PGHOME/lib:/usr/local/lib:/usr/lib/x86_64-linux-gnu:\$LD_LIBRARY_PATH" >>$ROOT_HOME/.bashrc
13 | echo "export PGDATA=/var/lib/postgresql/14/pgdata" >>$ROOT_HOME/.bashrc
14 | echo "export PGUSER=postgres" >>$ROOT_HOME/.bashrc
15 | echo "export PGHOST=\$PGDATA" >>$ROOT_HOME/.bashrc
16 | echo "export PGPORT=1921" >>$ROOT_HOME/.bashrc
17 | echo "export PGDATABASE=postgres" >>$ROOT_HOME/.bashrc
18 | echo "export LC_ALL=en_US.UTF-8" >>$ROOT_HOME/.bashrc
19 | . $ROOT_HOME/.bashrc
20 |
21 | export PG_HOME=/var/lib/postgresql
22 | echo "# add by digoal" >>$PG_HOME/.bash_profile
23 | echo "alias rm='rm -i'" >>$PG_HOME/.bash_profile
24 | echo "alias cp='cp -i'" >>$PG_HOME/.bash_profile
25 | echo "alias ll='ls -larth'" >>$PG_HOME/.bash_profile
26 | echo "alias mv='mv -i'" >>$PG_HOME/.bash_profile
27 | echo "export PGHOME=/usr/lib/postgresql/14" >>$PG_HOME/.bash_profile
28 | echo "export PATH=\$PGHOME/bin:\$PATH" >>$PG_HOME/.bash_profile
29 | echo "export LD_LIBRARY_PATH=\$PGHOME/lib:/usr/local/lib:/usr/lib/x86_64-linux-gnu:\$LD_LIBRARY_PATH" >>$PG_HOME/.bash_profile
30 | echo "export PGDATA=/var/lib/postgresql/14/pgdata" >>$PG_HOME/.bash_profile
31 | echo "export PGUSER=postgres" >>$PG_HOME/.bash_profile
32 | echo "export PGHOST=\$PGDATA" >>$PG_HOME/.bash_profile
33 | echo "export PGPORT=1921" >>$PG_HOME/.bash_profile
34 | echo "export PGDATABASE=postgres" >>$PG_HOME/.bash_profile
35 | echo "export LC_ALL=en_US.UTF-8" >>$PG_HOME/.bash_profile
36 |
37 | echo ". ~/.bash_profile" > $PG_HOME/.profile
38 | chown postgres:postgres $PG_HOME/.bash_profile
39 | chown postgres:postgres $PG_HOME/.profile
40 |
--------------------------------------------------------------------------------
/pg14_amd64/3.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | export ROOT_HOME=/root
5 | . $ROOT_HOME/.bashrc
6 |
7 | export TEMP_DIR=/tmp
8 | cd $TEMP_DIR
9 | git clone --depth 1 https://github.com/jaiminpan/pg_jieba
10 | cd $TEMP_DIR/pg_jieba
11 | git submodule update --init --recursive --depth 1
12 | mkdir build
13 | cd $TEMP_DIR/pg_jieba/build
14 | cmake -DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/postgresql/14/server ..
15 | make && make install
16 |
17 | cd $TEMP_DIR
18 | git clone --depth 1 https://github.com/ChenHuajun/pg_roaringbitmap
19 | cd $TEMP_DIR/pg_roaringbitmap
20 | USE_PGXS=1 make
21 | USE_PGXS=1 make install
22 |
23 | cd $TEMP_DIR
24 | git clone --depth 1 https://github.com/theirix/parray_gin
25 | cd $TEMP_DIR/parray_gin
26 | USE_PGXS=1 make
27 | USE_PGXS=1 make install
28 |
29 | cd $TEMP_DIR
30 | git clone --depth 1 https://github.com/jirutka/smlar
31 | cd $TEMP_DIR/smlar
32 | USE_PGXS=1 make
33 | USE_PGXS=1 make install
34 |
35 | cd $TEMP_DIR
36 | git clone --depth 1 https://github.com/alitrack/duckdb_fdw
37 | # 14版本 bug fix 之前
38 | # git clone https://github.com/alitrack/duckdb_fdw
39 | cd $TEMP_DIR/duckdb_fdw
40 | # git checkout 87c66cf04243c7bc43e0e75d0b8ce5dd76d81cd5
41 | # wget -T 36000 -t 0 --waitretry=5 https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-amd64.zip
42 | # curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-amd64.zip -o libduckdb-linux-amd64.zip
43 | cp $TEMP_DIR/libduckdb-linux-amd64.zip $TEMP_DIR/duckdb_fdw/
44 | unzip -n -d . libduckdb-linux-amd64.zip
45 | cp libduckdb.so $(pg_config --libdir)
46 | USE_PGXS=1 make
47 | USE_PGXS=1 make install
48 |
49 | cd $TEMP_DIR
50 | git clone --depth 1 https://github.com/EnterpriseDB/hdfs_fdw
51 | cd $TEMP_DIR/hdfs_fdw/libhive
52 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH make
53 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH make install
54 |
55 | cd $TEMP_DIR/hdfs_fdw/libhive/jdbc
56 | javac MsgBuf.java
57 | javac HiveJdbcClient.java
58 | jar cf HiveJdbcClient-1.0.jar *.class
59 | cp HiveJdbcClient-1.0.jar /usr/lib/postgresql/14/lib
60 |
61 | cd $TEMP_DIR/hdfs_fdw
62 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH USE_PGXS=1 make
63 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH USE_PGXS=1 make install
64 |
65 | cd $TEMP_DIR
66 | git clone --depth 1 https://gitlab.com/dalibo/postgresql_anonymizer.git
67 | cd $TEMP_DIR/postgresql_anonymizer
68 | make extension
69 | make install
70 |
71 | cd $TEMP_DIR
72 | git clone --depth 1 --branch stable https://github.com/jedisct1/libsodium
73 | cd $TEMP_DIR/libsodium
74 | ./configure
75 | make
76 | make check
77 | make install
78 |
79 | cd $TEMP_DIR
80 | git clone --depth 1 https://github.com/michelp/pgsodium
81 | cd $TEMP_DIR/pgsodium
82 | C_INCLUDE_PATH=/usr/include/postgresql/14/server PG_LDFLAGS=-L/usr/lib/postgresql/14/lib USE_PGXS=1 make
83 | C_INCLUDE_PATH=/usr/include/postgresql/14/server PG_LDFLAGS=-L/usr/lib/postgresql/14/lib USE_PGXS=1 make install
84 |
85 | cd $TEMP_DIR
86 | wget -T 36000 -t 0 --waitretry=5 https://github.com/libgd/libgd/archive/refs/tags/gd-2.3.3.tar.gz
87 | tar -zxvf gd-2.3.3.tar.gz
88 | cd $TEMP_DIR/libgd-gd-2.3.3
89 | mkdir build
90 | cd $TEMP_DIR/libgd-gd-2.3.3/build
91 | cmake ..
92 | make install
93 |
94 | cd $TEMP_DIR
95 | git clone --depth 1 https://github.com/digoal/imgsmlr
96 | # git clone --depth 1 https://github.com/postgrespro/imgsmlr
97 | cd $TEMP_DIR/imgsmlr
98 | USE_PGXS=1 make
99 | USE_PGXS=1 make install
100 |
101 | cd $TEMP_DIR
102 | git clone --depth 1 https://github.com/postgrespro/vops
103 | cd $TEMP_DIR/vops
104 | USE_PGXS=1 make
105 | USE_PGXS=1 make install
106 |
107 | cd $TEMP_DIR
108 | git clone --depth 1 -b PG14 https://github.com/ossc-db/pg_hint_plan
109 | cd $TEMP_DIR/pg_hint_plan
110 | USE_PGXS=1 make
111 | USE_PGXS=1 make install
112 |
113 | cd $TEMP_DIR
114 | apt-get install -y libselinux1-dev libpam0g-dev libkrb5-dev liblz4-dev
115 | git clone --depth 1 https://github.com/ossc-db/pg_bulkload
116 | cd $TEMP_DIR/pg_bulkload
117 | USE_PGXS=1 make
118 | USE_PGXS=1 make install
119 |
120 | cd $TEMP_DIR
121 | git clone --depth 1 -b 1.6.1 https://github.com/ossc-db/pg_store_plans
122 | cd $TEMP_DIR/pg_store_plans
123 | USE_PGXS=1 make
124 | USE_PGXS=1 make install
125 |
126 | # cd $TEMP_DIR
127 | # git clone --depth 1 -b REL-5_5_0 https://github.com/EnterpriseDB/mongo_fdw
128 | # cd $TEMP_DIR/mongo_fdw
129 | # ./autogen.sh --with-master
130 | # apt-get install -y libmongoc-dev
131 | # # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make
132 | # # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make install
133 | # USE_PGXS=1 make
134 | # USE_PGXS=1 make install
135 |
136 | cd $TEMP_DIR
137 | git clone --depth 1 -b REL-5_5_1 https://github.com/EnterpriseDB/mongo_fdw
138 | cd $TEMP_DIR/mongo_fdw
139 | cp $TEMP_DIR/mongo-c-driver-1.17.3.tar.gz ./
140 | tar -xzvf mongo-c-driver-1.17.3.tar.gz
141 | rm -rf mongo-c-driver
142 | mv mongo-c-driver-1.17.3 mongo-c-driver
143 | cd $TEMP_DIR/mongo_fdw/mongo-c-driver
144 | cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_SSL=AUTO .
145 | make install
146 |
147 | cd $TEMP_DIR/mongo_fdw
148 | cp $TEMP_DIR/json-c-0.15-20200726.tar.gz ./
149 | tar -xzvf json-c-0.15-20200726.tar.gz
150 | rm -rf json-c
151 | mv json-c-json-c-0.15-20200726 json-c
152 | cd $TEMP_DIR/mongo_fdw/json-c
153 | cmake .
154 | make -j 2
155 | make install
156 |
157 | apt-get install -y libmongoc-dev
158 |
159 | cd $TEMP_DIR/mongo_fdw
160 | echo "#ifdef __CONFIG__" >> config.h
161 | echo "#define META_DRIVER" >> config.h
162 | echo "#endif" >> config.h
163 | export PKG_CONFIG_PATH=mongo-c-driver/src/libmongoc/src:mongo-c-driver/src/libbson/src
164 | mv Makefile Makefile.origin
165 | cp Makefile.meta Makefile
166 | # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make
167 | # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make install
168 | USE_PGXS=1 make
169 | USE_PGXS=1 make install
170 |
171 | cd $TEMP_DIR
172 | git clone --depth 1 https://github.com/neondatabase/neon
173 | cd $TEMP_DIR/neon/pgxn/hnsw
174 | USE_PGXS=1 make
175 | USE_PGXS=1 make install
176 |
177 | cd $TEMP_DIR
178 | curl https://install.citusdata.com/community/deb.sh > add-citus-repo.sh
179 | bash add-citus-repo.sh
180 | apt-get install -y postgresql-14-citus-11.3
181 |
182 | cd $TEMP_DIR
183 | apt-get install -y libboost-all-dev
184 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/datasketches/1.7.0/datasketches-1.7.0.zip
185 | unzip datasketches-1.7.0.zip
186 | cd $TEMP_DIR/datasketches-1.7.0
187 | USE_PGXS=1 make
188 | USE_PGXS=1 make install
189 |
190 | cd $TEMP_DIR
191 | # get GraphBLAS, compile with debug symbols
192 | # curl --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -s -L http://faculty.cse.tamu.edu/davis/GraphBLAS/GraphBLAS-3.1.1.tar.gz | tar zxvf - && cd GraphBLAS-3.1.1 && make library CMAKE_OPTIONS='-DCMAKE_BUILD_TYPE=Debug' && make install
193 | tar -zxvf GraphBLAS-3.1.1.tar.gz
194 | cd GraphBLAS-3.1.1
195 | make library CMAKE_OPTIONS='-DCMAKE_BUILD_TYPE=Debug'
196 | make install
197 | cd $TEMP_DIR
198 | git clone --depth 1 --branch 22July2019 https://github.com/GraphBLAS/LAGraph.git && cd LAGraph && make -j4 library && make install
199 | cd $TEMP_DIR
200 | curl --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -s -L https://github.com/theory/pgtap/archive/v0.99.0.tar.gz | tar zxvf - && cd pgtap-0.99.0 && make -j4 && make install
201 |
202 | cd $TEMP_DIR
203 | git clone --depth 1 https://github.com/michelp/pggraphblas
204 | cd $TEMP_DIR/pggraphblas
205 | USE_PGXS=1 make
206 | USE_PGXS=1 make install
207 |
208 | cd $TEMP_DIR
209 | git clone --depth 1 -b REL1_2_STABLE https://github.com/pgbigm/pg_bigm
210 | cd $TEMP_DIR/pg_bigm
211 | USE_PGXS=1 make
212 | USE_PGXS=1 make install
213 |
214 | cd $TEMP_DIR
215 | git clone --depth 1 https://github.com/percona/pg_stat_monitor
216 | cd $TEMP_DIR/pg_stat_monitor
217 | USE_PGXS=1 make
218 | USE_PGXS=1 make install
219 |
220 | cd $TEMP_DIR
221 | git clone --depth 1 https://github.com/neondatabase/pg_embedding
222 | cd $TEMP_DIR/pg_embedding
223 | USE_PGXS=1 make
224 | USE_PGXS=1 make install
225 |
226 | cd $TEMP_DIR
227 | git clone --depth 1 https://github.com/cybertec-postgresql/pgfaceting
228 | cd $TEMP_DIR/pgfaceting
229 | USE_PGXS=1 make install
230 |
231 | cd $TEMP_DIR
232 | git clone --depth 1 https://github.com/pgexperts/pg_plan_filter
233 | cd $TEMP_DIR/pg_plan_filter
234 | USE_PGXS=1 make install
235 |
236 | cd $TEMP_DIR
237 | git clone --depth 1 https://github.com/postgrespro/pg_variables
238 | cd $TEMP_DIR/pg_variables
239 | USE_PGXS=1 make install
240 |
241 | cd $TEMP_DIR
242 | apt-get install -y libcurl-ocaml-dev
243 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_curl/2.2.2/pg_curl-2.2.2.zip
244 | unzip pg_curl-2.2.2.zip
245 | cd $TEMP_DIR/pg_curl-2.2.2
246 | USE_PGXS=1 make install
247 |
248 | cd $TEMP_DIR
249 | apt-get install -y systemtap-sdt-dev
250 | mkdir -p /usr/lib/postgresql/14/lib
251 | mkdir -p /usr/lib/postgresql/14/lib/bitcode
252 | mkdir -p /usr/share/postgresql/14/extension
253 | mv pg_task.so /usr/lib/postgresql/14/lib/
254 | mv pg_task.index.bc /usr/lib/postgresql/14/lib/bitcode/
255 | mv pg_task /usr/lib/postgresql/14/lib/bitcode/
256 | mv pg_task.control /usr/share/postgresql/14/extension/
257 | mv pg_task--1.0.sql /usr/share/postgresql/14/extension/
258 | cd $TEMP_DIR
259 | git clone --depth 1 -b extension https://github.com/RekGRpth/pg_task
260 | # OR
261 | # git clone --depth 1 -b extension https://github.com/RekGRpth/pg_task
262 | # cd $TEMP_DIR/pg_task
263 | # USE_PGXS=1 make install
264 | # OR
265 | # pgxn install pg_task
266 | # OR
267 | # wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_task/2.0.41/pg_task-2.0.41.zip
268 | # unzip pg_task-2.0.41.zip
269 | # cd $TEMP_DIR/pg_task-2.0.41
270 | # USE_PGXS=1 make install
271 |
272 | cd $TEMP_DIR
273 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/temporal_tables/1.2.2/temporal_tables-1.2.2.zip
274 | unzip temporal_tables-1.2.2.zip
275 | cd $TEMP_DIR/temporal_tables-1.2.2
276 | USE_PGXS=1 make install
277 |
278 | cd $TEMP_DIR
279 | git clone --depth 1 -b v3.1 https://github.com/darold/pgtt
280 | cd $TEMP_DIR/pgtt
281 | USE_PGXS=1 make install
282 |
283 | cd $TEMP_DIR
284 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_query_rewrite/0.0.5/pg_query_rewrite-0.0.5.zip
285 | unzip pg_query_rewrite-0.0.5.zip
286 | cd $TEMP_DIR/pg_query_rewrite-0.0.5
287 | USE_PGXS=1 make install
288 |
289 | cd $TEMP_DIR
290 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_track_settings/2.1.2/pg_track_settings-2.1.2.zip
291 | unzip pg_track_settings-2.1.2.zip
292 | cd $TEMP_DIR/pg_track_settings-2.1.2
293 | USE_PGXS=1 make install
294 |
295 | cd $TEMP_DIR
296 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/aggs_for_vecs/1.3.0/aggs_for_vecs-1.3.0.zip
297 | unzip aggs_for_vecs-1.3.0.zip
298 | cd $TEMP_DIR/aggs_for_vecs-1.3.0
299 | USE_PGXS=1 make install
300 |
301 | cd $TEMP_DIR
302 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/quantile/1.1.7/quantile-1.1.7.zip
303 | unzip quantile-1.1.7.zip
304 | cd $TEMP_DIR/quantile-1.1.7
305 | USE_PGXS=1 make install
306 |
307 | cd $TEMP_DIR
308 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_utility_trigger_functions/1.9.1/pg_utility_trigger_functions-1.9.1.zip
309 | unzip pg_utility_trigger_functions-1.9.1.zip
310 | cd $TEMP_DIR/pg_utility_trigger_functions-1.9.1
311 | USE_PGXS=1 make install
312 |
313 | cd $TEMP_DIR
314 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_safer_settings/0.8.10/pg_safer_settings-0.8.10.zip
315 | unzip pg_safer_settings-0.8.10.zip
316 | cd $TEMP_DIR/pg_safer_settings-0.8.10
317 | USE_PGXS=1 make install
318 |
319 | cd $TEMP_DIR
320 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/ddlx/0.27.0/ddlx-0.27.0.zip
321 | unzip ddlx-0.27.0.zip
322 | cd $TEMP_DIR/ddlx-0.27.0
323 | USE_PGXS=1 make install
324 |
325 | cd $TEMP_DIR
326 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pgtelemetry/1.6.0/pgtelemetry-1.6.0.zip
327 | unzip pgtelemetry-1.6.0.zip
328 | cd $TEMP_DIR/pgtelemetry-1.6.0
329 | USE_PGXS=1 make install
330 |
331 | cd $TEMP_DIR
332 | git clone --depth 1 -b REL14_0 https://github.com/ossc-db/pg_dbms_stats
333 | cd $TEMP_DIR/pg_dbms_stats
334 | USE_PGXS=1 make install
335 |
336 | cd $TEMP_DIR
337 | apt-get install -y libzlcore-dev
338 | git clone --depth 1 -b REL_14_STABLE https://github.com/ossc-db/pg_rman
339 | cd $TEMP_DIR/pg_rman
340 | make install
341 |
342 | # http://sigaev.ru/ 和 http://www.sigaev.ru/git/gitweb.cgi 需要开网络授权, 否则无法访问导致build image报错.
343 | cd $TEMP_DIR
344 | git clone --depth 1 git://sigaev.ru/online_analyze
345 | cd $TEMP_DIR/online_analyze/
346 | USE_PGXS=1 make
347 | USE_PGXS=1 make install
348 |
349 | # http://sigaev.ru/ 和 http://www.sigaev.ru/git/gitweb.cgi 需要开网络授权, 否则无法访问导致build image报错.
350 | cd $TEMP_DIR
351 | git clone --depth 1 git://sigaev.ru/plantuner
352 | cd $TEMP_DIR/plantuner/
353 | USE_PGXS=1 make
354 | USE_PGXS=1 make install
355 |
356 | cd $TEMP_DIR
357 | git clone --depth 1 https://github.com/digoal/gevel
358 | cd $TEMP_DIR/gevel
359 | . ./install.sh
360 |
361 | cd $TEMP_DIR
362 | git clone --depth 1 -b 4.3 https://github.com/zubkov-andrei/pg_profile
363 | cd $TEMP_DIR/pg_profile
364 | USE_PGXS=1 make
365 | USE_PGXS=1 make install
366 |
367 | cd $TEMP_DIR
368 | # git clone --depth 1 https://github.com/s-hironobu/pg_plan_inspector
369 | # cd $TEMP_DIR/pg_plan_inspector
370 | # bug 修复之前 : https://github.com/s-hironobu/pg_plan_inspector/issues/1
371 | git clone https://github.com/s-hironobu/pg_plan_inspector
372 | cd $TEMP_DIR/pg_plan_inspector
373 | git checkout fa845045ed5a776779f2d5308608ac18ed045aad
374 | USE_PGXS=1 make
375 | USE_PGXS=1 make install
376 |
377 | # apt-get install -y libhealpix-cxx-dev
378 | # cd $TEMP_DIR
379 | # git clone --depth 1 -b 1.2.3 https://github.com/postgrespro/pgsphere
380 | # cd $TEMP_DIR/pgsphere
381 | # USE_PGXS=1 make
382 | # USE_PGXS=1 make install
383 |
384 | cd $TEMP_DIR
385 | git clone --depth 1 https://github.com/sraoss/pg_ivm
386 | cd $TEMP_DIR/pg_ivm
387 | USE_PGXS=1 make
388 | USE_PGXS=1 make install
389 |
390 | cd $TEMP_DIR
391 | git clone --depth 1 https://github.com/pgvector/pgvector
392 | cd $TEMP_DIR/pgvector
393 | USE_PGXS=1 make
394 | USE_PGXS=1 make install
395 |
396 | cd $TEMP_DIR
397 | git clone --depth=1 https://github.com/vyruss/pg_statviz.git
398 | cd $TEMP_DIR/pg_statviz
399 | USE_PGXS=1 make install
400 |
401 | apt-get install -y python3-pip
402 | pip install pg_statviz
403 |
404 | cd $TEMP_DIR
405 | # curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L https://github.com/Kitware/CMake/releases/download/v3.27.4/cmake-3.27.4.tar.gz -o cmake-3.27.4.tar.gz
406 | tar -zxvf cmake-3.27.4.tar.gz
407 | cd $TEMP_DIR/cmake-3.27.4
408 | env CC=clang CXX=clang++ ./bootstrap -- -DCMAKE_BUILD_TYPE:STRING=Release
409 | make -j2
410 | make install
411 |
412 | cd $TEMP_DIR
413 | git clone --depth 1 https://github.com/zachasme/h3-pg
414 | cd $TEMP_DIR/h3-pg
415 | USE_PGXS=1 make all
416 | USE_PGXS=1 make install
417 |
418 |
419 | export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
420 | export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
421 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o ./rust.sh
422 | chmod 500 rust.sh
423 | ./rust.sh -y
424 | source "$HOME/.cargo/env"
425 |
426 | cd $TEMP_DIR
427 | git clone --depth 1 https://github.com/postgresml/pgcat
428 | cd $TEMP_DIR/pgcat
429 | cargo build --release
430 |
431 | cd $TEMP_DIR
432 | git clone --depth 1 https://github.com/chimpler/postgres-aws-s3
433 | cd $TEMP_DIR/postgres-aws-s3
434 | USE_PGXS=1 make install
435 |
436 | cd $TEMP_DIR
437 | git clone --depth 1 -b PG14 https://github.com/apache/age
438 | cd $TEMP_DIR/age
439 | USE_PGXS=1 make
440 | USE_PGXS=1 make install
441 |
442 | apt-get install -y npm
443 | # cd $TEMP_DIR
444 | # tar -zxvf node-v14.21.3.tar.gz
445 | # cd node-v14.21.3
446 | # ./configure
447 | # CC=clang CXX=clang++ make -j 4
448 | # CC=clang CXX=clang++ make install
449 | npm config set registry https://registry.npmmirror.com
450 | npm config set fetch-retries 100
451 | npm config set fetch-retry-mintimeout 120000
452 | npm config set fetch-retry-maxtimeout 60000000
453 | npm config set cache-min 3600
454 | npm i pm2
455 | cd $TEMP_DIR
456 | git clone --depth 1 https://github.com/apache/age-viewer
457 | cd $TEMP_DIR/age-viewer
458 | npm run setup
459 |
460 | cd $TEMP_DIR
461 | git clone --depth 1 https://github.com/michelp/pgjwt
462 | cd $TEMP_DIR/pgjwt
463 | USE_PGXS=1 make install
464 |
465 | cd $TEMP_DIR
466 | git clone --depth 1 https://github.com/supabase/pg_net
467 | cd $TEMP_DIR/pg_net
468 | USE_PGXS=1 make install
469 | # bug : ERROR: extension "pg_net" has no installation script nor update path for version "0.7.3"
470 | # cd $TEMP_DIR/pg_net/sql
471 | # cp -f -n ./pg_net.sql ./pg_net--0.7.3.sql /usr/share/postgresql/14/extension/
472 |
473 | cd $TEMP_DIR
474 | wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar jxf -
475 | cd $TEMP_DIR/scws-1.2.3
476 | ./configure
477 | make install
478 |
479 | cd $TEMP_DIR
480 | git clone --depth 1 https://github.com/amutu/zhparser.git
481 | cd $TEMP_DIR/zhparser
482 | PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config make && make install
483 |
484 | cd $TEMP_DIR
485 | git clone --depth 1 https://github.com/pramsey/pgsql-http
486 | cd $TEMP_DIR/pgsql-http
487 | USE_PGXS=1 make install
488 |
489 | cd $TEMP_DIR
490 | git clone --depth 1 https://github.com/pgsentinel/pgsentinel
491 | cd $TEMP_DIR/pgsentinel/src
492 | USE_PGXS=1 make install
493 |
494 | cd $TEMP_DIR
495 | git clone --depth 1 https://github.com/postgrespro/zson
496 | cd $TEMP_DIR/zson
497 | USE_PGXS=1 make install
498 |
499 | cd $TEMP_DIR
500 | cp pg_tiktoken--0.0.1.sql /usr/share/postgresql/14/extension/
501 | cp pg_tiktoken.control /usr/share/postgresql/14/extension/
502 | cp pg_tiktoken.so /usr/lib/postgresql/14/lib/
503 |
504 | cd $TEMP_DIR
505 | git clone --depth 1 --recursive https://github.com/lanterndata/lantern.git
506 | cd $TEMP_DIR/lantern
507 | mkdir build
508 | cd $TEMP_DIR/lantern/build
509 | cmake ..
510 | make install
511 |
512 | cd $TEMP_DIR
513 | cp lantern_extras--0.0.3.sql /usr/share/postgresql/14/extension/
514 | cp lantern_extras.control /usr/share/postgresql/14/extension/
515 | cp lantern_extras.so /usr/lib/postgresql/14/lib/
516 | cp lantern-cli /var/lib/postgresql/
517 | chown postgres:postgres /var/lib/postgresql/lantern-cli
518 |
519 | cd $TEMP_DIR
520 | git clone --depth 1 -b v1.1.0 https://github.com/hydradatabase/hydra
521 | cd $TEMP_DIR/hydra/columnar
522 | ./configure
523 | USE_PGXS=1 make install
524 |
525 | cd $TEMP_DIR
526 | mkdir -p /usr/local/onnxruntime
527 | tar vzxf onnxruntime-linux-x64-1.15.1.tgz -C /usr/local/onnxruntime --strip-components=1
528 | echo "/usr/local/onnxruntime/lib" > /etc/ld.so.conf.d/onnxruntime.conf
529 | ldconfig
530 |
531 | cd $TEMP_DIR
532 | git clone --depth 1 https://github.com/kibae/onnxruntime-server
533 | cd $TEMP_DIR/onnxruntime-server
534 | cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
535 | cmake --build build --parallel 4
536 | cmake --install build --prefix /usr/local/onnxruntime-server
537 |
538 | cd $TEMP_DIR
539 | git clone --depth 1 -b v1.15.1 https://github.com/microsoft/onnxruntime
540 | cp /tmp/onnxruntime/include/onnxruntime/core/session/* /usr/local/onnxruntime/
541 |
542 | cd $TEMP_DIR
543 | git clone --depth 1 --recursive https://github.com/kibae/pg_onnx.git
544 | cd $TEMP_DIR/pg_onnx
545 | cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
546 | cmake --build build --target pg_onnx --parallel 4
547 | cmake --install build/pg_onnx
548 |
549 | cd $TEMP_DIR
550 | # curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
551 | # apt-get install -y git-lfs
552 | for ((i=1;i>=0;i=1))
553 | do
554 | curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
555 | if [ $? -eq 0 ]; then
556 | break
557 | fi
558 | done
559 |
560 | for ((i=1;i>=0;i=1))
561 | do
562 | apt-get install -y git-lfs
563 | if [ $? -eq 0 ]; then
564 | break
565 | fi
566 | done
567 |
568 | cd $TEMP_DIR
569 | GIT_LFS_SKIP_SMUDGE=1 git clone --depth 1 https://github.com/onnx/models
570 | cd $TEMP_DIR/models
571 | git lfs install
572 |
573 | cd $TEMP_DIR
574 | git clone --depth 1 https://github.com/fboulnois/pg_uuidv7
575 | cd $TEMP_DIR/pg_uuidv7
576 | USE_PGXS=1 make install
577 |
578 | # apt-get install -y libcurl4-openssl-dev uuid-dev libpulse-dev
579 | # cd $TEMP_DIR
580 | # # git clone --depth 1 -b apache-arrow-12.0.1 https://github.com/apache/arrow.git
581 | # git clone --depth 1 -b apache-arrow-14.0.2 https://github.com/apache/arrow.git
582 | # cd $TEMP_DIR/arrow/cpp
583 | # mkdir build-release
584 | # cd $TEMP_DIR/arrow/cpp/build-release
585 | #
586 | # # build选项: https://arrow.apache.org/docs/developers/cpp/building.html
587 | # for ((i=1;i>=0;i=1))
588 | # do
589 | # # cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED -DARROW_PARQUET=ON -DARROW_ORC=ON -DARROW_S3=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_ZLIB=ON -DARROW_WITH_ZSTD=ON -DPARQUET_REQUIRE_ENCRYPTION=ON ..
590 | # cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED -DARROW_PARQUET=ON ..
591 | # if [ $? -eq 0 ]; then
592 | # break
593 | # fi
594 | # done
595 | #
596 | # for ((i=1;i>=0;i=1))
597 | # do
598 | # make -j4
599 | # if [ $? -eq 0 ]; then
600 | # break
601 | # fi
602 | # done
603 | #
604 | # make install
605 | # ldconfig
606 |
607 | # https://arrow.apache.org/install/
608 | cd $TEMP_DIR
609 | apt-get install -y libcurl4-openssl-dev uuid-dev libpulse-dev
610 | for ((i=1;i>=0;i=1))
611 | do
612 | apt-get update
613 | if [ $? -eq 0 ]; then
614 | break
615 | fi
616 | done
617 | apt install -y -V ca-certificates lsb-release
618 | for ((i=1;i>=0;i=1))
619 | do
620 | wget -T 36000 -t 0 --waitretry=5 https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
621 | if [ $? -eq 0 ]; then
622 | break
623 | fi
624 | done
625 | apt-get install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
626 | for ((i=1;i>=0;i=1))
627 | do
628 | apt-get update
629 | if [ $? -eq 0 ]; then
630 | break
631 | fi
632 | done
633 | apt-get install -y -V libarrow-dev # For C++
634 | apt-get install -y -V libarrow-glib-dev # For GLib (C)
635 | apt-get install -y -V libarrow-dataset-dev # For Apache Arrow Dataset C++
636 | apt-get install -y -V libarrow-dataset-glib-dev # For Apache Arrow Dataset GLib (C)
637 | apt-get install -y -V libarrow-acero-dev # For Apache Arrow Acero
638 | apt-get install -y -V libarrow-flight-dev # For Apache Arrow Flight C++
639 | apt-get install -y -V libarrow-flight-glib-dev # For Apache Arrow Flight GLib (C)
640 | apt-get install -y -V libarrow-flight-sql-dev # For Apache Arrow Flight SQL C++
641 | apt-get install -y -V libarrow-flight-sql-glib-dev # For Apache Arrow Flight SQL GLib (C)
642 | apt-get install -y -V libgandiva-dev # For Gandiva C++
643 | apt-get install -y -V libgandiva-glib-dev # For Gandiva GLib (C)
644 | apt-get install -y -V libparquet-dev # For Apache Parquet C++
645 | apt-get install -y -V libparquet-glib-dev # For Apache Parquet GLib (C)
646 |
647 | cd $TEMP_DIR
648 | git clone --depth 1 https://github.com/adjust/parquet_fdw
649 | cd $TEMP_DIR/parquet_fdw
650 | make install
651 |
652 | cd $TEMP_DIR
653 | git clone --depth 1 https://github.com/pgspider/sqlite_fdw
654 | cd $TEMP_DIR/sqlite_fdw
655 | USE_PGXS=1 make
656 | USE_PGXS=1 make install
657 |
658 | cd $TEMP_DIR
659 | cp pg_bm25--0.4.3.sql /usr/share/postgresql/14/extension/
660 | cp pg_bm25.control /usr/share/postgresql/14/extension/
661 | cp pg_bm25.so /usr/lib/postgresql/14/lib/
662 |
663 | cd $TEMP_DIR
664 | cp pg_search--0.0.0.sql /usr/share/postgresql/14/extension/
665 | cp pg_search.control /usr/share/postgresql/14/extension/
666 | cp pg_search.so /usr/lib/postgresql/14/lib/
667 |
668 | cd $TEMP_DIR
669 | cp pg_sparse--0.0.0.sql /usr/share/postgresql/14/extension/
670 | cp pg_sparse.control /usr/share/postgresql/14/extension/
671 | cp pg_sparse.so /usr/lib/postgresql/14/lib/
672 |
673 | cd $TEMP_DIR
674 | git clone --depth 1 -b 14.3 https://github.com/ossc-db/pg_statsinfo
675 | cd $TEMP_DIR/pg_statsinfo
676 | PG_LDFLAGS=-L/usr/lib/postgresql/14/lib make
677 | PG_LDFLAGS=-L/usr/lib/postgresql/14/lib make install
678 |
679 | cd /usr/lib/postgresql/14
680 | git clone --depth 1 -b 14.0 https://github.com/ossc-db/pg_stats_reporter
681 |
682 | cd $TEMP_DIR/
683 | git clone --depth 1 https://gitlab.com/pg_proctab/pg_proctab
684 | cd $TEMP_DIR/pg_proctab
685 | USE_PGXS=1 make install
686 |
687 | apt-get install -y libelf-dev
688 | cd $TEMP_DIR/
689 | git clone --depth 1 https://gitlab.com/pg_top/pg_top
690 | cd $TEMP_DIR/pg_top
691 | cmake CMakeLists.txt
692 | USE_PGXS=1 make install
693 |
694 | cd $TEMP_DIR/
695 | wget https://golang.org/dl/go1.17.linux-amd64.tar.gz
696 | tar -zxvf go1.17.linux-amd64.tar.gz -C /usr/local/
697 | export PATH=/usr/local/go/bin:${PATH}
698 | echo "export PATH=/usr/local/go/bin:${PATH}" >>/root/.bashrc
699 | echo "export PATH=/usr/local/go/bin:${PATH}" >>/var/lib/postgresql/.bash_profile
700 | cd $TEMP_DIR/
701 | git clone --depth 1 https://github.com/lesovsky/pgcenter
702 | cd $TEMP_DIR/pgcenter
703 | make dep
704 | make build
705 | make install
706 |
707 | # pgadmin4 apt 安装目前仅支持x86. arm需要源码安装
708 | cd $TEMP_DIR/
709 | curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
710 | sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list'
711 | for ((i=1;i>=0;i=1))
712 | do
713 | apt-get update
714 | if [ $? -eq 0 ]; then
715 | break
716 | fi
717 | done
718 |
719 | for ((i=1;i>=0;i=1))
720 | do
721 | apt-get install -y pgadmin4-web
722 | if [ $? -eq 0 ]; then
723 | break
724 | fi
725 | done
726 |
727 | # apt-get install -y pgadmin4
728 | # apt-get install -y pgadmin4-web
729 | # docker内不支持systemctl, 需要修改 /usr/pgadmin4/bin/setup-web.sh systemctl 控制的apache2服务全部改成如下:
730 | # /etc/init.d/apache2 start
731 | # /etc/init.d/apache2 restart
732 | # #COMMAND="systemctl restart ${APACHE}"
733 | # /etc/init.d/apache2 restart
734 | # #if ! systemctl enable ${APACHE}; then
735 | # if ! /etc/init.d/apache2 start; then
736 | # if ! systemctl start ${APACHE}; then
737 | # if ! /etc/init.d/apache2 start; then
738 | # 启动pgadmin4 web:
739 | # /usr/pgadmin4/bin/setup-web.sh --yes
740 | # 在主机查看80端口映射, docker inspect pg
741 | # 在主机chrome中打开 127.0.0.1:port/pgadmin
742 | # 注意pgadmin在docker容器中, 连接容器中的pg数据库地址是 127.0.0.1:1921
743 | # 拿泰森多边形练手: https://github.com/digoal/blog/blob/master/201904/20190421_01.md
744 |
745 | cd $TEMP_DIR
746 | git clone --depth 1 https://github.com/petere/pguint
747 | cd $TEMP_DIR/pguint
748 | USE_PGXS=1 make install
749 |
750 | cd $TEMP_DIR
751 | git clone --depth 1 -b v0.4.3 https://github.com/paradedb/paradedb
752 | cd $TEMP_DIR/paradedb/pg_sparse
753 | USE_PGXS=1 make install
754 | chmod 644 ./sql/svector--0.4.1.sql
755 | cp ./sql/svector--0.4.1.sql /usr/share/postgresql/14/extension/
756 |
757 | cd $TEMP_DIR
758 | git clone --depth 1 https://github.com/bdrouvot/pg_subtrans_infos
759 | cd $TEMP_DIR/pg_subtrans_infos
760 | USE_PGXS=1 make install
761 |
762 | cd $TEMP_DIR
763 | git clone --depth 1 https://github.com/bdrouvot/pg_subxact_counters
764 | cd $TEMP_DIR/pg_subxact_counters/c
765 | USE_PGXS=1 make install
766 |
767 | cd $TEMP_DIR
768 | cp pg_idkit--0.2.1.sql /usr/share/postgresql/14/extension/
769 | cp pg_idkit.control /usr/share/postgresql/14/extension/
770 | cp pg_idkit.so /usr/lib/postgresql/14/lib/
771 |
772 | cd $TEMP_DIR
773 | apt-get install -y build-essential libproj-dev libjson-c-dev libgsl-dev libgeos-dev
774 | git clone --depth 1 https://github.com/MobilityDB/MobilityDB
775 | cd $TEMP_DIR/MobilityDB
776 | mkdir build
777 | cd $TEMP_DIR/MobilityDB/build
778 | cmake ..
779 | make -j 4
780 | make install
781 |
782 | cd $TEMP_DIR
783 | cp pgdd--0.5.2.sql /usr/share/postgresql/14/extension/
784 | cp pgdd.control /usr/share/postgresql/14/extension/
785 | cp pgdd.so /usr/lib/postgresql/14/lib/
786 |
787 | cd $TEMP_DIR
788 | git clone --depth 1 https://github.com/PGer/pipelinedb_pg14.git
789 | cd $TEMP_DIR/pipelinedb_pg14
790 | apt-get install -y libczmq4 libczmq-dev
791 | USE_PGXS=1 make install
792 |
793 | cd $TEMP_DIR
794 | git clone --depth 1 https://github.com/jaiminpan/pg_nanoid.git
795 | cd $TEMP_DIR/pg_nanoid
796 | USE_PGXS=1 make install
797 |
798 | cd $TEMP_DIR
799 | git clone --depth 1 https://github.com/andrielfn/pg-ulid.git
800 | cd $TEMP_DIR/pg-ulid
801 | USE_PGXS=1 make install
802 |
803 | cd $TEMP_DIR
804 | git clone --depth 1 https://github.com/phillbaker/pg_migrate.git
805 | cd $TEMP_DIR/pg_migrate/
806 | USE_PGXS=1 make install
807 |
808 | cd $TEMP_DIR
809 | git clone --depth 1 https://github.com/df7cb/pg_filedump.git
810 | cd $TEMP_DIR/pg_filedump/
811 | USE_PGXS=1 make install
812 |
813 | cd $TEMP_DIR
814 | git clone --depth 1 https://github.com/petere/pgpcre
815 | cd $TEMP_DIR/pgpcre
816 | USE_PGXS=1 make install
817 |
818 | cd $TEMP_DIR
819 | git clone --depth 1 https://github.com/omniti-labs/pg_jobmon
820 | cd $TEMP_DIR/pg_jobmon
821 | USE_PGXS=1 make install
822 |
823 | cd $TEMP_DIR
824 | git clone --depth 1 https://github.com/pgpartman/pg_partman
825 | cd $TEMP_DIR/pg_partman
826 | USE_PGXS=1 make install
827 |
828 | # rustup版本必须和plrust需要的rust版本一致, 这里是1.72.0
829 | su - postgres -c "export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static ; export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup ; curl --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --profile minimal --default-toolchain 1.72.0 --no-modify-path -y ; source /var/lib/postgresql/.cargo/env ; rustup component add rustc-dev"
830 | echo "source /var/lib/postgresql/.cargo/env" >> /var/lib/postgresql/.bash_profile
831 | dpkg -i /tmp/plrust-trusted-1.2.7_1.72.0-debian-pg14-amd64.deb
832 |
833 | cd $TEMP_DIR
834 | git clone --depth 1 https://gitee.com/seanguo_007/plpgsql_pg4ml.git
835 | cd $TEMP_DIR/plpgsql_pg4ml
836 | USE_PGXS=1 make install
837 |
838 | cd $TEMP_DIR
839 | cp pgmq--1.1.1.sql /usr/share/postgresql/14/extension/
840 | cp pgmq.control /usr/share/postgresql/14/extension/
841 | cp pgmq.so /usr/lib/postgresql/14/lib/
842 |
843 | cd $TEMP_DIR
844 | cp pg_later--0.0.13.sql /usr/share/postgresql/14/extension/
845 | cp pg_later.control /usr/share/postgresql/14/extension/
846 | cp pg_later.so /usr/lib/postgresql/14/lib/
847 |
848 | cd $TEMP_DIR
849 | cp vectorize--0.7.0.sql /usr/share/postgresql/14/extension/
850 | cp vectorize.control /usr/share/postgresql/14/extension/
851 | cp vectorize.so /usr/lib/postgresql/14/lib/
852 |
853 | cd $TEMP_DIR
854 | git clone --depth 1 https://github.com/pgEdge/snowflake
855 | cd $TEMP_DIR/snowflake
856 | USE_PGXS=1 make install
857 |
858 | cd /usr/lib/postgresql/14
859 | git clone --depth 1 https://github.com/swida/sqlbench
860 | cd /usr/lib/postgresql/14/sqlbench
861 | autoreconf -if
862 | ./configure --with-postgresql="$PGHOME"
863 | C_INCLUDE_PATH=/usr/include/postgresql make
864 | C_INCLUDE_PATH=/usr/include/postgresql make install
865 |
866 | apt-get install -y libpcap-dev libnl-genl-3-dev
867 | cd /tmp
868 | git clone --depth 1 -b 8.4.0-stable https://github.com/ntop/PF_RING
869 | cd /tmp/PF_RING/userland/lib
870 | ./configure && make
871 | make install
872 | cd /tmp
873 | git clone --depth 1 https://github.com/heterodb/pg-strom
874 | cd /tmp/pg-strom/arrow-tools
875 | PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config C_INCLUDE_PATH=/tmp/PF_RING/kernel make
876 | PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config C_INCLUDE_PATH=/tmp/PF_RING/kernel make install
877 |
878 | cd /usr/lib/postgresql/14
879 | git clone --depth 1 https://github.com/apache/madlib
880 | cd /usr/lib/postgresql/14/madlib
881 | mkdir build
882 | cd /usr/lib/postgresql/14/madlib/build
883 | cmake ..
884 | make -j 4
885 | # $BUILD_ROOT/src/bin/madpack -s madlib -p postgres -c [user[/password]@][host][:port][/database] install
886 |
--------------------------------------------------------------------------------
/pg14_amd64/4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | echo "* soft nofile 1024000" >> /etc/security/limits.conf
5 | echo "* hard nofile 1024000" >> /etc/security/limits.conf
6 | echo "* soft nproc unlimited" >> /etc/security/limits.conf
7 | echo "* hard nproc unlimited" >> /etc/security/limits.conf
8 | echo "* soft core unlimited" >> /etc/security/limits.conf
9 | echo "* hard core unlimited" >> /etc/security/limits.conf
10 | echo "* soft memlock unlimited" >> /etc/security/limits.conf
11 | echo "* hard memlock unlimited" >> /etc/security/limits.conf
12 |
--------------------------------------------------------------------------------
/pg14_amd64/5.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | export PG_HOME=/var/lib/postgresql
5 | . $PG_HOME/.bash_profile
6 | initdb -D $PGDATA -U postgres -E UTF8 --lc-collate=C --lc-ctype=en_US.UTF8
7 |
8 | cd $PGDATA
9 | echo "host all all 0.0.0.0/0 scram-sha-256" >> ./pg_hba.conf
10 |
11 | echo "listen_addresses = '0.0.0.0'" >> ./postgresql.auto.conf
12 | echo "port = 1921" >> ./postgresql.auto.conf
13 | echo "max_connections = 2000" >> ./postgresql.auto.conf
14 | echo "unix_socket_directories = '., /var/run/postgresql'" >> ./postgresql.auto.conf
15 | echo "shared_buffers = 128MB" >> ./postgresql.auto.conf
16 | echo "dynamic_shared_memory_type = posix" >> ./postgresql.auto.conf
17 | echo "vacuum_cost_delay = 0" >> ./postgresql.auto.conf
18 | echo "bgwriter_delay = 20ms" >> ./postgresql.auto.conf
19 | echo "bgwriter_lru_maxpages = 500" >> ./postgresql.auto.conf
20 | echo "bgwriter_lru_multiplier = 5.0" >> ./postgresql.auto.conf
21 | echo "max_parallel_workers_per_gather = 0" >> ./postgresql.auto.conf
22 | echo "synchronous_commit = off" >> ./postgresql.auto.conf
23 | echo "wal_compression = on" >> ./postgresql.auto.conf
24 | echo "wal_writer_delay = 10ms" >> ./postgresql.auto.conf
25 | echo "max_wal_size = 1GB " >> ./postgresql.auto.conf
26 | echo "min_wal_size = 80MB " >> ./postgresql.auto.conf
27 | echo "random_page_cost = 1.1" >> ./postgresql.auto.conf
28 | echo "log_destination = 'csvlog'" >> ./postgresql.auto.conf
29 | echo "logging_collector = on" >> ./postgresql.auto.conf
30 | echo "log_truncate_on_rotation = on" >> ./postgresql.auto.conf
31 | echo "log_timezone = 'Etc/UTC' " >> ./postgresql.auto.conf
32 | echo "autovacuum = on" >> ./postgresql.auto.conf
33 | echo "autovacuum_vacuum_cost_delay = 0ms" >> ./postgresql.auto.conf
34 | echo "vacuum_freeze_table_age = 750000000 " >> ./postgresql.auto.conf
35 | echo "vacuum_multixact_freeze_table_age = 750000000 " >> ./postgresql.auto.conf
36 | echo "datestyle = 'iso, mdy' " >> ./postgresql.auto.conf
37 | echo "timezone = 'Etc/UTC' " >> ./postgresql.auto.conf
38 | echo "lc_messages = 'en_US.UTF-8'" >> ./postgresql.auto.conf
39 | echo "lc_monetary = 'en_US.UTF-8'" >> ./postgresql.auto.conf
40 | echo "lc_numeric = 'en_US.UTF-8'" >> ./postgresql.auto.conf
41 | echo "lc_time = 'en_US.UTF-8'" >> ./postgresql.auto.conf
42 | echo "default_text_search_config = 'pg_catalog.english'" >> ./postgresql.auto.conf
43 |
--------------------------------------------------------------------------------
/pg14_amd64/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM --platform=$TARGETPLATFORM debian:11.7
2 | MAINTAINER digoal zhou "dege.zzz@alibaba-inc.com"
3 | ARG TARGETPLATFORM
4 | ARG BUILDPLATFORM
5 | RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM"
6 | ENV DEBIAN_FRONTEND=noninteractive TEMP_DIR=/tmp ROOT_HOME=/root PG_HOME=/var/lib/postgresql PG_DATA=/var/lib/postgresql/14/pgdata PGHOME=/usr/lib/postgresql/14
7 | STOPSIGNAL SIGINT
8 | COPY --chmod=555 1.sh 2.sh 3.sh 4.sh 5.sh $TEMP_DIR/
9 | COPY GraphBLAS-3.1.1.tar.gz libduckdb-linux-amd64.zip duckdb_cli-linux-amd64.zip cmake-3.27.4.tar.gz mongo-c-driver-1.17.3.tar.gz json-c-0.15-20200726.tar.gz pg_tiktoken--0.0.1.sql pg_tiktoken.control pg_tiktoken.so lantern_extras--0.0.3.sql lantern_extras.control lantern_extras.so lantern-cli onnxruntime-linux-x64-1.15.1.tgz node-v14.21.3.tar.gz pg_bm25.control pg_bm25.so pg_bm25--0.4.3.sql pg_search.control pg_search.so pg_search--0.0.0.sql pg_sparse.so pg_sparse.control pg_sparse--0.0.0.sql pg_task.so pg_task.index.bc pg_task.control pg_task--1.0.sql pg_idkit--0.2.1.sql pg_idkit.control pg_idkit.so pgdd--0.5.2.sql pgdd.control pgdd.so pghero_3.4.0-1701207987.0382b812.bullseye_amd64.deb plrust-trusted-1.2.7_1.72.0-debian-pg14-amd64.deb pgroll pgmq.control pgmq--1.1.1.sql pgmq.so pg_later.control pg_later.so pg_later--0.0.13.sql vectorize.control vectorize.so vectorize--0.7.0.sql $TEMP_DIR/
10 | RUN mkdir /tmp/pg_task
11 | COPY pg_task /tmp/pg_task
12 |
13 | RUN $TEMP_DIR/1.sh
14 | RUN $TEMP_DIR/2.sh
15 | RUN $TEMP_DIR/3.sh
16 |
17 | # WORKDIR $TEMP_DIR
18 | # RUN apt install -y libtinfo5 build-essential ninja-build python3
19 | # RUN git clone --depth 1 -b v3.1.7 https://github.com/plv8/plv8
20 | # WORKDIR $TEMP_DIR/plv8
21 | # RUN USE_ICU=1 USE_PGXS=1 make
22 | # RUN USE_ICU=1 USE_PGXS=1 make install
23 | #
24 | # WORKDIR $TEMP_DIR
25 | # RUN git clone --depth 1 -b apache-arrow-12.0.1 https://github.com/apache/arrow.git
26 | # WORKDIR $TEMP_DIR/arrow/cpp
27 | # RUN mkdir build-release
28 | # WORKDIR $TEMP_DIR/arrow/cpp/build-release
29 | # RUN cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED ..
30 | # RUN make -j4
31 | # RUN make install
32 | #
33 | # WORKDIR $TEMP_DIR
34 | # RUN apt install -y libcurl4-openssl-dev uuid-dev libpulse-dev
35 | # RUN git clone --depth 1 -b 1.9.263 https://github.com/aws/aws-sdk-cpp
36 | # WORKDIR $TEMP_DIR/aws-sdk-cpp
37 | # RUN git submodule update --init --recursive --depth 1
38 | # RUN mkdir build
39 | # WORKDIR $TEMP_DIR/aws-sdk-cpp/build
40 | # RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="s3;core"
41 | # RUN make -j4
42 | # RUN make install
43 | #
44 | # WORKDIR $TEMP_DIR
45 | # RUN git clone --depth 1 -b v1.0.0 https://github.com/pgspider/parquet_s3_fdw
46 | # WORKDIR $TEMP_DIR/parquet_s3_fdw
47 | # RUN PG_CPPFLAGS="-Wno-register -D_GLIBCXX_USE_CXX11_ABI=0" USE_PGXS=1 make
48 | # RUN PG_CPPFLAGS="-std=c++17 -Wno-register -D_GLIBCXX_USE_CXX11_ABI=0" USE_PGXS=1 make
49 | # RUN PG_CPPFLAGS="-std=c++17 -Wno-register -D_GLIBCXX_USE_CXX11_ABI=0" USE_PGXS=1 make install
50 | # RUN echo "/usr/local/lib" >>/etc/ld.so.conf
51 | # RUN ldconfig
52 |
53 |
54 | ENV ORACLE_BASE /usr/lib/postgresql/14/lib
55 | WORKDIR $ORACLE_BASE
56 | COPY instantclient_12_2/libclntsh.so.12.1 .
57 | RUN ln -s libclntsh.so.12.1 libclntsh.so
58 | RUN mkdir -p oracle/network/admin
59 | COPY instantclient_12_2 ./oracle
60 | RUN echo "export LD_LIBRARY_PATH=\$PGHOME/lib/oracle:\$LD_LIBRARY_PATH" >>$PG_HOME/.bash_profile
61 | RUN echo "export ORACLE_HOME=\$PGHOME/lib/oracle" >>$PG_HOME/.bash_profile
62 | RUN echo "export TNS_ADMIN=\$ORACLE_HOME/network/admin/" >>$PG_HOME/.bash_profile
63 | RUN echo "export LD_LIBRARY_PATH=\$PGHOME/lib/oracle:\$LD_LIBRARY_PATH" >>$ROOT_HOME/.bashrc
64 | RUN echo "export ORACLE_HOME=\$PGHOME/lib/oracle" >>$ROOT_HOME/.bashrc
65 | RUN echo "export TNS_ADMIN=\$ORACLE_HOME/network/admin/" >>$ROOT_HOME/.bashrc
66 | RUN . $ROOT_HOME/.bashrc
67 |
68 | RUN echo "/usr/lib/postgresql/14/lib/oracle" >> /etc/ld.so.conf
69 | RUN echo "/usr/local/lib" >> /etc/ld.so.conf
70 | RUN echo "/usr/lib/postgresql/14/lib" >> /etc/ld.so.conf
71 | RUN ldconfig
72 |
73 | WORKDIR $TEMP_DIR
74 | # RUN apt install -y libsqlite3-dev
75 | RUN git clone --depth 1 https://github.com/ossc-db/dblink_plus
76 | WORKDIR $TEMP_DIR/dblink_plus
77 | RUN cp -r /usr/lib/postgresql/14/lib/oracle/sdk/include/* ./
78 | RUN PG_CFLAGS=-I/usr/lib/postgresql/14/lib/oracle/sdk/include PG_LDFLAGS=-L/usr/lib/postgresql/14/lib/oracle USE_PGXS=1 make
79 | RUN PG_CFLAGS=-I/usr/lib/postgresql/14/lib/oracle/sdk/include PG_LDFLAGS=-L/usr/lib/postgresql/14/lib/oracle USE_PGXS=1 make install
80 |
81 | # RUN rm -rf $TEMP_DIR/*
82 |
83 | RUN $TEMP_DIR/4.sh
84 |
85 | USER postgres
86 | RUN $TEMP_DIR/5.sh
87 |
88 | WORKDIR $PG_HOME
89 | # RUN wget -T 36000 -t 0 --waitretry=5 https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-amd64.zip
90 | # RUN curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-amd64.zip -o duckdb_cli-linux-amd64.zip
91 | RUN cp $TEMP_DIR/duckdb_cli-linux-amd64.zip $PG_HOME/
92 | RUN unzip -d . duckdb_cli-linux-amd64.zip
93 |
94 | RUN cp $TEMP_DIR/pgroll $PG_HOME/
95 |
96 | USER root
97 | WORKDIR $ROOT_HOME
98 |
99 | EXPOSE 1921
100 | EXPOSE 3000
101 | EXPOSE 8080
102 | EXPOSE 80
103 | EXPOSE 3306
104 | ENTRYPOINT ["su", "-", "postgres", "-c", "/usr/lib/postgresql/14/bin/postgres -D \"/var/lib/postgresql/14/pgdata\""]
105 |
--------------------------------------------------------------------------------
/pg14_arm64/.dockerignore:
--------------------------------------------------------------------------------
1 | logs/
2 |
--------------------------------------------------------------------------------
/pg14_arm64/1.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | cd /tmp
5 | sed -i "s@http://\(deb\|security\).debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
6 | apt-get update
7 | apt-get reinstall -y apt-transport-https ca-certificates
8 | sed -i "s@http://mirrors.aliyun.com@https://mirrors.aliyun.com@g" /etc/apt/sources.list
9 | apt-get update
10 | apt-get install -y lsb-release wget vim man
11 |
12 | # RUN echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
13 | echo "deb https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
14 | apt-get install -y gnupg2
15 |
16 | # RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
17 | wget --quiet -O - https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/apt/ACCC4CF8.asc | apt-key add -
18 | apt-get update
19 | apt-get install -y locales
20 | localedef -i en_US -f UTF-8 en_US.UTF-8
21 |
22 | apt-get install -y curl libicu-dev icu-devtools libbison-dev libfl-dev git libreadline-dev libedit-dev g++ make cmake man-db dnsutils clang libssl-dev default-jdk strace gdb libsqlite3-dev lsof blktrace
23 | apt-get install -y unixodbc unixodbc-dev bash-completion m4 python3-distutils python glibc-source zlib1g-dev pkg-config default-jre openjdk-17-jdk openjdk-17-jdk-headless
24 | apt-get install -y postgresql-14 postgresql-client-14 postgresql-server-dev-14 postgresql-doc-14
25 | apt-get install -y postgresql-14-dirtyread postgresql-14-extra-window-functions postgresql-14-first-last-agg postgresql-14-hll postgresql-14-hypopg
26 | apt-get install -y postgresql-14-ip4r postgresql-14-mysql-fdw postgresql-14-jsquery postgresql-14-ogr-fdw postgresql-14-oracle-fdw postgresql-14-pgmemcache
27 | apt-get install -y postgresql-14-pljava postgresql-14-pllua postgresql-14-plpgsql-check postgresql-14-plproxy postgresql-14-prefix postgresql-14-rational
28 | apt-get install -y postgresql-14-rdkit postgresql-14-orafce postgresql-14-pg-qualstats postgresql-14-pg-stat-kcache
29 | apt-get install -y postgresql-14-pg-wait-sampling postgresql-14-pgfincore postgresql-14-pgaudit postgresql-14-pgpool2 postgresql-14-pgrouting postgresql-14-pgrouting-doc
30 | apt-get install -y postgresql-14-pgrouting-scripts postgresql-14-pgsphere postgresql-14-pgvector postgresql-14-pldebugger postgresql-14-pointcloud postgresql-14-plr
31 | apt-get install -y postgresql-14-postgis-3 postgresql-14-postgis-3-scripts postgresql-14-powa powa-collector postgresql-14-q3c postgresql-14-repack
32 | apt-get install -y postgresql-14-rum postgresql-14-show-plans postgresql-14-similarity postgresql-14-tablelog postgresql-14-tdigest postgresql-14-wal2json
33 | apt-get install -y postgresql-14-tds-fdw postgresql-14-plprofiler postgresql-14-cron
34 | apt-get install -y pgagroal pgpool2 pgbouncer pgxnclient pgagent postgresql-plpython3-14 postgresql-14-icu-ext libpq-dev pgreplay pgbackrest pgbackrest-doc elephant-shed-pgbackrest
35 |
36 | echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | tee /etc/apt/sources.list.d/timescaledb.list
37 | wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
38 | apt-get update
39 | apt-get install -y timescaledb-2-postgresql-14 timescaledb-toolkit-postgresql-14 timescaledb-2-loader-postgresql-14
40 |
41 | wget https://packages.groonga.org/debian/groonga-apt-source-latest-bullseye.deb
42 | apt-get install -y -V ./groonga-apt-source-latest-bullseye.deb
43 | apt-get update
44 | apt-get install -y postgresql-14-pgdg-pgroonga
45 |
46 | apt-get install -y postgresql-14-credcheck postgresql-14-decoderbufs postgresql-14-mimeo postgresql-14-pgmp postgresql-14-preprepare postgresql-14-prioritize postgresql-14-squeeze postgresql-14-toastinfo postgresql-14-unit pgbadger pg-auto-failover-cli postgresql-14-auto-failover net-tools apt-utils ora2pg pgloader postgresql-14-partman
47 |
48 | # 包安装方式暂不支持ARM架构
49 | # https://dev.mysql.com/downloads/repo/apt/
50 | # cd /tmp
51 | # wget -T 36000 -t 0 --waitretry=5 https://repo.mysql.com//mysql-apt-config_0.8.28-1_all.deb
52 | # dpkg -i mysql-apt-config_0.8.28-1_all.deb
53 | # apt-get update
54 | # apt-get install -y mysql-server
55 |
--------------------------------------------------------------------------------
/pg14_arm64/2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | export ROOT_HOME=/root
5 | echo "# add by digoal" >>$ROOT_HOME/.bashrc
6 | echo "alias rm='rm -i'" >>$ROOT_HOME/.bashrc
7 | echo "alias cp='cp -i'" >>$ROOT_HOME/.bashrc
8 | echo "alias ll='ls -larth'" >>$ROOT_HOME/.bashrc
9 | echo "alias mv='mv -i'" >>$ROOT_HOME/.bashrc
10 | echo "export PGHOME=/usr/lib/postgresql/14" >>$ROOT_HOME/.bashrc
11 | echo "export PATH=\$PGHOME/bin:\$PATH" >>$ROOT_HOME/.bashrc
12 | echo "export LD_LIBRARY_PATH=\$PGHOME/lib:/usr/local/lib:/usr/lib/aarch64-linux-gnu:\$LD_LIBRARY_PATH" >>$ROOT_HOME/.bashrc
13 | echo "export PGDATA=/var/lib/postgresql/14/pgdata" >>$ROOT_HOME/.bashrc
14 | echo "export PGUSER=postgres" >>$ROOT_HOME/.bashrc
15 | echo "export PGHOST=\$PGDATA" >>$ROOT_HOME/.bashrc
16 | echo "export PGPORT=1921" >>$ROOT_HOME/.bashrc
17 | echo "export PGDATABASE=postgres" >>$ROOT_HOME/.bashrc
18 | echo "export LC_ALL=en_US.UTF-8" >>$ROOT_HOME/.bashrc
19 | . $ROOT_HOME/.bashrc
20 |
21 | export PG_HOME=/var/lib/postgresql
22 | echo "# add by digoal" >>$PG_HOME/.bash_profile
23 | echo "alias rm='rm -i'" >>$PG_HOME/.bash_profile
24 | echo "alias cp='cp -i'" >>$PG_HOME/.bash_profile
25 | echo "alias ll='ls -larth'" >>$PG_HOME/.bash_profile
26 | echo "alias mv='mv -i'" >>$PG_HOME/.bash_profile
27 | echo "export PGHOME=/usr/lib/postgresql/14" >>$PG_HOME/.bash_profile
28 | echo "export PATH=\$PGHOME/bin:\$PATH" >>$PG_HOME/.bash_profile
29 | echo "export LD_LIBRARY_PATH=\$PGHOME/lib:/usr/local/lib:/usr/lib/aarch64-linux-gnu:\$LD_LIBRARY_PATH" >>$PG_HOME/.bash_profile
30 | echo "export PGDATA=/var/lib/postgresql/14/pgdata" >>$PG_HOME/.bash_profile
31 | echo "export PGUSER=postgres" >>$PG_HOME/.bash_profile
32 | echo "export PGHOST=\$PGDATA" >>$PG_HOME/.bash_profile
33 | echo "export PGPORT=1921" >>$PG_HOME/.bash_profile
34 | echo "export PGDATABASE=postgres" >>$PG_HOME/.bash_profile
35 | echo "export LC_ALL=en_US.UTF-8" >>$PG_HOME/.bash_profile
36 |
37 | echo ". ~/.bash_profile" > $PG_HOME/.profile
38 | chown postgres:postgres $PG_HOME/.bash_profile
39 | chown postgres:postgres $PG_HOME/.profile
40 |
--------------------------------------------------------------------------------
/pg14_arm64/3.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | export ROOT_HOME=/root
5 | . $ROOT_HOME/.bashrc
6 |
7 | export TEMP_DIR=/tmp
8 | cd $TEMP_DIR
9 | git clone --depth 1 https://github.com/jaiminpan/pg_jieba
10 | cd $TEMP_DIR/pg_jieba
11 | git submodule update --init --recursive --depth 1
12 | mkdir build
13 | cd $TEMP_DIR/pg_jieba/build
14 | cmake -DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/postgresql/14/server ..
15 | make && make install
16 |
17 | cd $TEMP_DIR
18 | git clone --depth 1 https://github.com/ChenHuajun/pg_roaringbitmap
19 | cd $TEMP_DIR/pg_roaringbitmap
20 | USE_PGXS=1 make
21 | USE_PGXS=1 make install
22 |
23 | cd $TEMP_DIR
24 | git clone --depth 1 https://github.com/theirix/parray_gin
25 | cd $TEMP_DIR/parray_gin
26 | USE_PGXS=1 make
27 | USE_PGXS=1 make install
28 |
29 | cd $TEMP_DIR
30 | git clone --depth 1 https://github.com/jirutka/smlar
31 | cd $TEMP_DIR/smlar
32 | USE_PGXS=1 make
33 | USE_PGXS=1 make install
34 |
35 | cd $TEMP_DIR
36 | git clone --depth 1 https://github.com/alitrack/duckdb_fdw
37 | # 14版本 bug fix 之前
38 | # git clone https://github.com/alitrack/duckdb_fdw
39 | cd $TEMP_DIR/duckdb_fdw
40 | # git checkout 87c66cf04243c7bc43e0e75d0b8ce5dd76d81cd5
41 | # wget -T 36000 -t 0 --waitretry=5 https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-aarch64.zip
42 | # curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L https://github.com/duckdb/duckdb/releases/download/v0.9.2/libduckdb-linux-aarch64.zip -o libduckdb-linux-aarch64.zip
43 | cp $TEMP_DIR/libduckdb-linux-aarch64.zip $TEMP_DIR/duckdb_fdw/
44 | unzip -n -d . libduckdb-linux-aarch64.zip
45 | cp libduckdb.so $(pg_config --libdir)
46 | USE_PGXS=1 make
47 | USE_PGXS=1 make install
48 |
49 | cd $TEMP_DIR
50 | git clone --depth 1 https://github.com/EnterpriseDB/hdfs_fdw
51 | cd $TEMP_DIR/hdfs_fdw/libhive
52 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH make
53 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH make install
54 |
55 | cd $TEMP_DIR/hdfs_fdw/libhive/jdbc
56 | javac MsgBuf.java
57 | javac HiveJdbcClient.java
58 | jar cf HiveJdbcClient-1.0.jar *.class
59 | cp HiveJdbcClient-1.0.jar /usr/lib/postgresql/14/lib
60 |
61 | cd $TEMP_DIR/hdfs_fdw
62 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH USE_PGXS=1 make
63 | JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64 JDK_INCLUDE=$JAVA_HOME/include INSTALL_DIR=/usr/lib/postgresql/14/lib PATH=/usr/lib/postgresql/14/bin:$PATH USE_PGXS=1 make install
64 |
65 | cd $TEMP_DIR
66 | git clone --depth 1 https://gitlab.com/dalibo/postgresql_anonymizer.git
67 | cd $TEMP_DIR/postgresql_anonymizer
68 | make extension
69 | make install
70 |
71 | cd $TEMP_DIR
72 | git clone --depth 1 --branch stable https://github.com/jedisct1/libsodium
73 | cd $TEMP_DIR/libsodium
74 | ./configure
75 | make
76 | make check
77 | make install
78 |
79 | cd $TEMP_DIR
80 | git clone --depth 1 https://github.com/michelp/pgsodium
81 | cd $TEMP_DIR/pgsodium
82 | C_INCLUDE_PATH=/usr/include/postgresql/14/server PG_LDFLAGS=-L/usr/lib/postgresql/14/lib USE_PGXS=1 make
83 | C_INCLUDE_PATH=/usr/include/postgresql/14/server PG_LDFLAGS=-L/usr/lib/postgresql/14/lib USE_PGXS=1 make install
84 |
85 | cd $TEMP_DIR
86 | wget -T 36000 -t 0 --waitretry=5 https://github.com/libgd/libgd/archive/refs/tags/gd-2.3.3.tar.gz
87 | tar -zxvf gd-2.3.3.tar.gz
88 | cd $TEMP_DIR/libgd-gd-2.3.3
89 | mkdir build
90 | cd $TEMP_DIR/libgd-gd-2.3.3/build
91 | cmake ..
92 | make install
93 |
94 | cd $TEMP_DIR
95 | git clone --depth 1 https://github.com/digoal/imgsmlr
96 | # git clone --depth 1 https://github.com/postgrespro/imgsmlr
97 | cd $TEMP_DIR/imgsmlr
98 | USE_PGXS=1 make
99 | USE_PGXS=1 make install
100 |
101 | cd $TEMP_DIR
102 | git clone --depth 1 https://github.com/postgrespro/vops
103 | cd $TEMP_DIR/vops
104 | USE_PGXS=1 make
105 | USE_PGXS=1 make install
106 |
107 | cd $TEMP_DIR
108 | git clone --depth 1 -b PG14 https://github.com/ossc-db/pg_hint_plan
109 | cd $TEMP_DIR/pg_hint_plan
110 | USE_PGXS=1 make
111 | USE_PGXS=1 make install
112 |
113 | cd $TEMP_DIR
114 | apt-get install -y libselinux1-dev libpam0g-dev libkrb5-dev liblz4-dev
115 | git clone --depth 1 https://github.com/ossc-db/pg_bulkload
116 | cd $TEMP_DIR/pg_bulkload
117 | USE_PGXS=1 make
118 | USE_PGXS=1 make install
119 |
120 | cd $TEMP_DIR
121 | git clone --depth 1 -b 1.6.1 https://github.com/ossc-db/pg_store_plans
122 | cd $TEMP_DIR/pg_store_plans
123 | USE_PGXS=1 make
124 | USE_PGXS=1 make install
125 |
126 | # cd $TEMP_DIR
127 | # git clone --depth 1 -b REL-5_5_1 https://github.com/EnterpriseDB/mongo_fdw
128 | # cd $TEMP_DIR/mongo_fdw
129 | # ./autogen.sh --with-master
130 | # apt-get install -y libmongoc-dev
131 | # # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make
132 | # # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make install
133 | # USE_PGXS=1 make
134 | # USE_PGXS=1 make install
135 |
136 | cd $TEMP_DIR
137 | git clone --depth 1 -b REL-5_5_1 https://github.com/EnterpriseDB/mongo_fdw
138 | cd $TEMP_DIR/mongo_fdw
139 | cp $TEMP_DIR/mongo-c-driver-1.17.3.tar.gz ./
140 | tar -xzvf mongo-c-driver-1.17.3.tar.gz
141 | rm -rf mongo-c-driver
142 | mv mongo-c-driver-1.17.3 mongo-c-driver
143 | cd $TEMP_DIR/mongo_fdw/mongo-c-driver
144 | cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_SSL=AUTO .
145 | make install
146 |
147 | cd $TEMP_DIR/mongo_fdw
148 | cp $TEMP_DIR/json-c-0.15-20200726.tar.gz ./
149 | tar -xzvf json-c-0.15-20200726.tar.gz
150 | rm -rf json-c
151 | mv json-c-json-c-0.15-20200726 json-c
152 | cd $TEMP_DIR/mongo_fdw/json-c
153 | cmake .
154 | make -j 2
155 | make install
156 |
157 | apt-get install -y libmongoc-dev
158 |
159 | cd $TEMP_DIR/mongo_fdw
160 | echo "#ifdef __CONFIG__" >> config.h
161 | echo "#define META_DRIVER" >> config.h
162 | echo "#endif" >> config.h
163 | export PKG_CONFIG_PATH=mongo-c-driver/src/libmongoc/src:mongo-c-driver/src/libbson/src
164 | mv Makefile Makefile.origin
165 | cp Makefile.meta Makefile
166 | # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make
167 | # C_INCLUDE_PATH="/include/libmongoc-1.0/mongoc:/include/libbson-1.0" USE_PGXS=1 make install
168 | USE_PGXS=1 make
169 | USE_PGXS=1 make install
170 |
171 | cd $TEMP_DIR
172 | git clone --depth 1 https://github.com/neondatabase/neon
173 | cd $TEMP_DIR/neon/pgxn/hnsw
174 | USE_PGXS=1 make
175 | USE_PGXS=1 make install
176 |
177 | # cd $TEMP_DIR
178 | # curl https://install.citusdata.com/community/deb.sh > add-citus-repo.sh
179 | # bash add-citus-repo.sh
180 | # apt-get install -y postgresql-14-citus-12
181 | # Unfortunately, the Citus repository does not contain packages for non-x86_64 architectures.
182 |
183 | apt-get install -y libzstd-dev libxslt1-dev libxml2-dev libcurl-ocaml-dev
184 | cd $TEMP_DIR
185 | git clone --depth 1 https://github.com/citusdata/citus
186 | cd $TEMP_DIR/citus
187 | ./autogen.sh
188 | ./configure
189 | make -j8
190 | make install
191 |
192 | cd $TEMP_DIR
193 | apt-get install -y libboost-all-dev
194 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/datasketches/1.7.0/datasketches-1.7.0.zip
195 | unzip datasketches-1.7.0.zip
196 | cd $TEMP_DIR/datasketches-1.7.0
197 | USE_PGXS=1 make
198 | USE_PGXS=1 make install
199 |
200 | cd $TEMP_DIR
201 | # get GraphBLAS, compile with debug symbols
202 | # curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L http://faculty.cse.tamu.edu/davis/GraphBLAS/GraphBLAS-3.1.1.tar.gz -o GraphBLAS-3.1.1.tar.gz
203 | tar -zxvf GraphBLAS-3.1.1.tar.gz
204 | cd GraphBLAS-3.1.1
205 | make library CMAKE_OPTIONS='-DCMAKE_BUILD_TYPE=Debug'
206 | make install
207 | cd $TEMP_DIR
208 | git clone --depth 1 --branch 22July2019 https://github.com/GraphBLAS/LAGraph.git && cd LAGraph && make -j4 library && make install
209 | cd $TEMP_DIR
210 | curl --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -s -L https://github.com/theory/pgtap/archive/v0.99.0.tar.gz | tar zxvf - && cd pgtap-0.99.0 && make -j4 && make install
211 |
212 | cd $TEMP_DIR
213 | git clone --depth 1 https://github.com/michelp/pggraphblas
214 | cd $TEMP_DIR/pggraphblas
215 | USE_PGXS=1 make
216 | USE_PGXS=1 make install
217 |
218 | cd $TEMP_DIR
219 | git clone --depth 1 -b REL1_2_STABLE https://github.com/pgbigm/pg_bigm
220 | cd $TEMP_DIR/pg_bigm
221 | USE_PGXS=1 make
222 | USE_PGXS=1 make install
223 |
224 | cd $TEMP_DIR
225 | git clone --depth 1 https://github.com/percona/pg_stat_monitor
226 | cd $TEMP_DIR/pg_stat_monitor
227 | USE_PGXS=1 make
228 | USE_PGXS=1 make install
229 |
230 | cd $TEMP_DIR
231 | git clone --depth 1 https://github.com/neondatabase/pg_embedding
232 | cd $TEMP_DIR/pg_embedding
233 | USE_PGXS=1 make
234 | USE_PGXS=1 make install
235 |
236 | cd $TEMP_DIR
237 | git clone --depth 1 https://github.com/cybertec-postgresql/pgfaceting
238 | cd $TEMP_DIR/pgfaceting
239 | USE_PGXS=1 make install
240 |
241 | cd $TEMP_DIR
242 | git clone --depth 1 https://github.com/pgexperts/pg_plan_filter
243 | cd $TEMP_DIR/pg_plan_filter
244 | USE_PGXS=1 make install
245 |
246 | cd $TEMP_DIR
247 | git clone --depth 1 https://github.com/postgrespro/pg_variables
248 | cd $TEMP_DIR/pg_variables
249 | USE_PGXS=1 make install
250 |
251 | cd $TEMP_DIR
252 | apt-get install -y libcurl-ocaml-dev
253 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_curl/2.2.2/pg_curl-2.2.2.zip
254 | unzip pg_curl-2.2.2.zip
255 | cd $TEMP_DIR/pg_curl-2.2.2
256 | USE_PGXS=1 make install
257 |
258 | cd $TEMP_DIR
259 | apt-get install -y systemtap-sdt-dev
260 | mkdir -p /usr/lib/postgresql/14/lib
261 | mkdir -p /usr/lib/postgresql/14/lib/bitcode
262 | mkdir -p /usr/share/postgresql/14/extension
263 | mv pg_task.so /usr/lib/postgresql/14/lib/
264 | mv pg_task.index.bc /usr/lib/postgresql/14/lib/bitcode/
265 | mv pg_task /usr/lib/postgresql/14/lib/bitcode/
266 | mv pg_task.control /usr/share/postgresql/14/extension/
267 | mv pg_task--1.0.sql /usr/share/postgresql/14/extension/
268 | cd $TEMP_DIR
269 | git clone --depth 1 -b extension https://github.com/RekGRpth/pg_task
270 | # OR
271 | # git clone --depth 1 -b extension https://github.com/RekGRpth/pg_task
272 | # cd $TEMP_DIR/pg_task
273 | # USE_PGXS=1 make install
274 | # OR
275 | # wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_task/2.0.41/pg_task-2.0.41.zip
276 | # unzip pg_task-2.0.41.zip
277 | # cd $TEMP_DIR/pg_task-2.0.41
278 | # USE_PGXS=1 make install
279 |
280 | cd $TEMP_DIR
281 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/temporal_tables/1.2.2/temporal_tables-1.2.2.zip
282 | unzip temporal_tables-1.2.2.zip
283 | cd $TEMP_DIR/temporal_tables-1.2.2
284 | USE_PGXS=1 make install
285 |
286 | cd $TEMP_DIR
287 | git clone --depth 1 -b v3.1 https://github.com/darold/pgtt
288 | cd $TEMP_DIR/pgtt
289 | USE_PGXS=1 make install
290 |
291 | cd $TEMP_DIR
292 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_query_rewrite/0.0.5/pg_query_rewrite-0.0.5.zip
293 | unzip pg_query_rewrite-0.0.5.zip
294 | cd $TEMP_DIR/pg_query_rewrite-0.0.5
295 | USE_PGXS=1 make install
296 |
297 | cd $TEMP_DIR
298 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_track_settings/2.1.2/pg_track_settings-2.1.2.zip
299 | unzip pg_track_settings-2.1.2.zip
300 | cd $TEMP_DIR/pg_track_settings-2.1.2
301 | USE_PGXS=1 make install
302 |
303 | cd $TEMP_DIR
304 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/aggs_for_vecs/1.3.0/aggs_for_vecs-1.3.0.zip
305 | unzip aggs_for_vecs-1.3.0.zip
306 | cd $TEMP_DIR/aggs_for_vecs-1.3.0
307 | USE_PGXS=1 make install
308 |
309 | cd $TEMP_DIR
310 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/quantile/1.1.7/quantile-1.1.7.zip
311 | unzip quantile-1.1.7.zip
312 | cd $TEMP_DIR/quantile-1.1.7
313 | USE_PGXS=1 make install
314 |
315 | cd $TEMP_DIR
316 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_utility_trigger_functions/1.9.1/pg_utility_trigger_functions-1.9.1.zip
317 | unzip pg_utility_trigger_functions-1.9.1.zip
318 | cd $TEMP_DIR/pg_utility_trigger_functions-1.9.1
319 | USE_PGXS=1 make install
320 |
321 | cd $TEMP_DIR
322 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pg_safer_settings/0.8.10/pg_safer_settings-0.8.10.zip
323 | unzip pg_safer_settings-0.8.10.zip
324 | cd $TEMP_DIR/pg_safer_settings-0.8.10
325 | USE_PGXS=1 make install
326 |
327 | cd $TEMP_DIR
328 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/ddlx/0.27.0/ddlx-0.27.0.zip
329 | unzip ddlx-0.27.0.zip
330 | cd $TEMP_DIR/ddlx-0.27.0
331 | USE_PGXS=1 make install
332 |
333 | cd $TEMP_DIR
334 | wget -T 36000 -t 0 --waitretry=5 https://api.pgxn.org/dist/pgtelemetry/1.6.0/pgtelemetry-1.6.0.zip
335 | unzip pgtelemetry-1.6.0.zip
336 | cd $TEMP_DIR/pgtelemetry-1.6.0
337 | USE_PGXS=1 make install
338 |
339 | cd $TEMP_DIR
340 | git clone --depth 1 -b REL14_0 https://github.com/ossc-db/pg_dbms_stats
341 | cd $TEMP_DIR/pg_dbms_stats
342 | USE_PGXS=1 make install
343 |
344 | cd $TEMP_DIR
345 | apt-get install -y libzlcore-dev
346 | git clone --depth 1 -b REL_14_STABLE https://github.com/ossc-db/pg_rman
347 | cd $TEMP_DIR/pg_rman
348 | make install
349 |
350 | # http://sigaev.ru/ 和 http://www.sigaev.ru/git/gitweb.cgi 需要开网络授权, 否则无法访问导致build image报错.
351 | cd $TEMP_DIR
352 | git clone --depth 1 git://sigaev.ru/online_analyze
353 | cd $TEMP_DIR/online_analyze/
354 | USE_PGXS=1 make
355 | USE_PGXS=1 make install
356 |
357 | # http://sigaev.ru/ 和 http://www.sigaev.ru/git/gitweb.cgi 需要开网络授权, 否则无法访问导致build image报错.
358 | cd $TEMP_DIR
359 | git clone --depth 1 git://sigaev.ru/plantuner
360 | cd $TEMP_DIR/plantuner/
361 | USE_PGXS=1 make
362 | USE_PGXS=1 make install
363 |
364 | cd $TEMP_DIR
365 | git clone --depth 1 https://github.com/digoal/gevel
366 | cd $TEMP_DIR/gevel
367 | . ./install.sh
368 |
369 | cd $TEMP_DIR
370 | git clone --depth 1 -b 4.3 https://github.com/zubkov-andrei/pg_profile
371 | cd $TEMP_DIR/pg_profile
372 | USE_PGXS=1 make
373 | USE_PGXS=1 make install
374 |
375 | cd $TEMP_DIR
376 | # git clone --depth 1 https://github.com/s-hironobu/pg_plan_inspector
377 | # cd $TEMP_DIR/pg_plan_inspector
378 | # bug 修复之前 : https://github.com/s-hironobu/pg_plan_inspector/issues/1
379 | git clone https://github.com/s-hironobu/pg_plan_inspector
380 | cd $TEMP_DIR/pg_plan_inspector
381 | git checkout fa845045ed5a776779f2d5308608ac18ed045aad
382 | USE_PGXS=1 make
383 | USE_PGXS=1 make install
384 |
385 | # apt-get install -y libhealpix-cxx-dev
386 | # cd $TEMP_DIR
387 | # git clone --depth 1 -b 1.2.3 https://github.com/postgrespro/pgsphere
388 | # cd $TEMP_DIR/pgsphere
389 | # USE_PGXS=1 make
390 | # USE_PGXS=1 make install
391 |
392 | cd $TEMP_DIR
393 | git clone --depth 1 https://github.com/sraoss/pg_ivm
394 | cd $TEMP_DIR/pg_ivm
395 | USE_PGXS=1 make
396 | USE_PGXS=1 make install
397 |
398 | cd $TEMP_DIR
399 | git clone --depth 1 https://github.com/pgvector/pgvector
400 | cd $TEMP_DIR/pgvector
401 | USE_PGXS=1 make
402 | USE_PGXS=1 make install
403 |
404 | cd $TEMP_DIR
405 | git clone --depth=1 https://github.com/vyruss/pg_statviz.git
406 | cd $TEMP_DIR/pg_statviz
407 | USE_PGXS=1 make install
408 |
409 | apt-get install -y python3-pip
410 | pip install pg_statviz
411 |
412 | cd $TEMP_DIR
413 | # curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L https://github.com/Kitware/CMake/releases/download/v3.27.4/cmake-3.27.4.tar.gz -o cmake-3.27.4.tar.gz
414 | tar -zxvf cmake-3.27.4.tar.gz
415 | cd $TEMP_DIR/cmake-3.27.4
416 | env CC=clang CXX=clang++ ./bootstrap -- -DCMAKE_BUILD_TYPE:STRING=Release
417 | make -j8
418 | make install
419 |
420 | cd $TEMP_DIR
421 | git clone --depth 1 https://github.com/zachasme/h3-pg
422 | cd $TEMP_DIR/h3-pg
423 | USE_PGXS=1 make all
424 | USE_PGXS=1 make install
425 |
426 |
427 | cd $TEMP_DIR
428 | export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
429 | export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
430 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o ./rust.sh
431 | chmod 500 rust.sh
432 | ./rust.sh -y
433 | source "$HOME/.cargo/env"
434 |
435 | cd $TEMP_DIR
436 | git clone --depth 1 https://github.com/postgresml/pgcat
437 | cd $TEMP_DIR/pgcat
438 | cargo build --release
439 |
440 | cd $TEMP_DIR
441 | git clone --depth 1 https://github.com/chimpler/postgres-aws-s3
442 | cd $TEMP_DIR/postgres-aws-s3
443 | USE_PGXS=1 make install
444 |
445 | cd $TEMP_DIR
446 | git clone --depth 1 -b PG14 https://github.com/apache/age
447 | cd $TEMP_DIR/age
448 | USE_PGXS=1 make
449 | USE_PGXS=1 make install
450 |
451 | apt-get install -y npm
452 | # cd $TEMP_DIR
453 | # tar -zxvf node-v14.21.3.tar.gz
454 | # cd node-v14.21.3
455 | # ./configure
456 | # CC=clang CXX=clang++ make -j 4
457 | # CC=clang CXX=clang++ make install
458 | npm config set registry https://registry.npmmirror.com
459 | npm config set fetch-retries 100
460 | npm config set fetch-retry-mintimeout 120000
461 | npm config set fetch-retry-maxtimeout 60000000
462 | npm config set cache-min 3600
463 | npm i pm2
464 | cd $TEMP_DIR
465 | git clone --depth 1 https://github.com/apache/age-viewer
466 | cd $TEMP_DIR/age-viewer
467 | npm run setup
468 |
469 | cd $TEMP_DIR
470 | git clone --depth 1 https://github.com/michelp/pgjwt
471 | cd $TEMP_DIR/pgjwt
472 | USE_PGXS=1 make install
473 |
474 | cd $TEMP_DIR
475 | git clone --depth 1 https://github.com/supabase/pg_net
476 | cd $TEMP_DIR/pg_net
477 | USE_PGXS=1 make install
478 | # bug : ERROR: extension "pg_net" has no installation script nor update path for version "0.7.3"
479 | # cd $TEMP_DIR/pg_net/sql
480 | # cp -f -n ./pg_net.sql ./pg_net--0.7.3.sql /usr/share/postgresql/14/extension/
481 |
482 | cd $TEMP_DIR
483 | wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar jxf -
484 | cd $TEMP_DIR/scws-1.2.3
485 | ./configure
486 | make install
487 |
488 | cd $TEMP_DIR
489 | git clone --depth 1 https://github.com/amutu/zhparser.git
490 | cd $TEMP_DIR/zhparser
491 | PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config make && make install
492 |
493 | cd $TEMP_DIR
494 | git clone --depth 1 https://github.com/pramsey/pgsql-http
495 | cd $TEMP_DIR/pgsql-http
496 | USE_PGXS=1 make install
497 |
498 | cd $TEMP_DIR
499 | git clone --depth 1 https://github.com/pgsentinel/pgsentinel
500 | cd $TEMP_DIR/pgsentinel/src
501 | USE_PGXS=1 make install
502 |
503 | cd $TEMP_DIR
504 | git clone --depth 1 https://github.com/postgrespro/zson
505 | cd $TEMP_DIR/zson
506 | USE_PGXS=1 make install
507 |
508 | cd $TEMP_DIR
509 | cp pg_tiktoken--0.0.1.sql /usr/share/postgresql/14/extension/
510 | cp pg_tiktoken.control /usr/share/postgresql/14/extension/
511 | cp pg_tiktoken.so /usr/lib/postgresql/14/lib/
512 |
513 | cd $TEMP_DIR
514 | git clone --depth 1 --recursive https://github.com/lanterndata/lantern.git
515 | cd $TEMP_DIR/lantern
516 | mkdir build
517 | cd $TEMP_DIR/lantern/build
518 | cmake ..
519 | make install
520 |
521 | cd $TEMP_DIR
522 | cp lantern_extras--0.0.3.sql /usr/share/postgresql/14/extension/
523 | cp lantern_extras.control /usr/share/postgresql/14/extension/
524 | cp lantern_extras.so /usr/lib/postgresql/14/lib/
525 | cp lantern-cli /var/lib/postgresql/
526 | chown postgres:postgres /var/lib/postgresql/lantern-cli
527 |
528 | cd $TEMP_DIR
529 | git clone --depth 1 -b v1.1.0 https://github.com/hydradatabase/hydra
530 | cd $TEMP_DIR/hydra/columnar
531 | ./configure
532 | USE_PGXS=1 make install
533 |
534 | cd $TEMP_DIR
535 | mkdir -p /usr/local/onnxruntime
536 | tar vzxf onnxruntime-linux-aarch64-1.15.1.tgz -C /usr/local/onnxruntime --strip-components=1
537 | echo "/usr/local/onnxruntime/lib" > /etc/ld.so.conf.d/onnxruntime.conf
538 | ldconfig
539 |
540 | cd $TEMP_DIR
541 | git clone --depth 1 https://github.com/kibae/onnxruntime-server
542 | cd $TEMP_DIR/onnxruntime-server
543 | cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
544 | cmake --build build --parallel 4
545 | cmake --install build --prefix /usr/local/onnxruntime-server
546 |
547 | cd $TEMP_DIR
548 | git clone --depth 1 -b v1.15.1 https://github.com/microsoft/onnxruntime
549 | cp /tmp/onnxruntime/include/onnxruntime/core/session/* /usr/local/onnxruntime/
550 |
551 | cd $TEMP_DIR
552 | git clone --depth 1 --recursive https://github.com/kibae/pg_onnx.git
553 | cd $TEMP_DIR/pg_onnx
554 | cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
555 | cmake --build build --target pg_onnx --parallel 4
556 | cmake --install build/pg_onnx
557 |
558 | cd $TEMP_DIR
559 | # curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
560 | # apt-get install -y git-lfs
561 | for ((i=1;i>=0;i=1))
562 | do
563 | curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
564 | if [ $? -eq 0 ]; then
565 | break
566 | fi
567 | done
568 |
569 | for ((i=1;i>=0;i=1))
570 | do
571 | apt-get install -y git-lfs
572 | if [ $? -eq 0 ]; then
573 | break
574 | fi
575 | done
576 |
577 | cd $TEMP_DIR
578 | GIT_LFS_SKIP_SMUDGE=1 git clone --depth 1 https://github.com/onnx/models
579 | cd $TEMP_DIR/models
580 | git lfs install
581 |
582 | cd $TEMP_DIR
583 | git clone --depth 1 https://github.com/fboulnois/pg_uuidv7
584 | cd $TEMP_DIR/pg_uuidv7
585 | USE_PGXS=1 make install
586 |
587 | # apt-get install -y libcurl4-openssl-dev uuid-dev libpulse-dev
588 | # cd $TEMP_DIR
589 | # # git clone --depth 1 -b apache-arrow-12.0.1 https://github.com/apache/arrow.git
590 | # git clone --depth 1 -b apache-arrow-14.0.2 https://github.com/apache/arrow.git
591 | # cd $TEMP_DIR/arrow/cpp
592 | # mkdir build-release
593 | # cd $TEMP_DIR/arrow/cpp/build-release
594 | #
595 | # # build选项: https://arrow.apache.org/docs/developers/cpp/building.html
596 | # for ((i=1;i>=0;i=1))
597 | # do
598 | # # cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED -DARROW_PARQUET=ON -DARROW_ORC=ON -DARROW_S3=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_ZLIB=ON -DARROW_WITH_ZSTD=ON -DPARQUET_REQUIRE_ENCRYPTION=ON ..
599 | # cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED -DARROW_PARQUET=ON ..
600 | # if [ $? -eq 0 ]; then
601 | # break
602 | # fi
603 | # done
604 | #
605 | # for ((i=1;i>=0;i=1))
606 | # do
607 | # make -j4
608 | # if [ $? -eq 0 ]; then
609 | # break
610 | # fi
611 | # done
612 | #
613 | # make install
614 | # ldconfig
615 |
616 | # https://arrow.apache.org/install/
617 | cd $TEMP_DIR
618 | apt-get install -y libcurl4-openssl-dev uuid-dev libpulse-dev
619 | for ((i=1;i>=0;i=1))
620 | do
621 | apt-get update
622 | if [ $? -eq 0 ]; then
623 | break
624 | fi
625 | done
626 | apt install -y -V ca-certificates lsb-release
627 | for ((i=1;i>=0;i=1))
628 | do
629 | wget -T 36000 -t 0 --waitretry=5 https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
630 | if [ $? -eq 0 ]; then
631 | break
632 | fi
633 | done
634 | apt-get install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
635 | for ((i=1;i>=0;i=1))
636 | do
637 | apt-get update
638 | if [ $? -eq 0 ]; then
639 | break
640 | fi
641 | done
642 | apt-get install -y -V libarrow-dev # For C++
643 | apt-get install -y -V libarrow-glib-dev # For GLib (C)
644 | apt-get install -y -V libarrow-dataset-dev # For Apache Arrow Dataset C++
645 | apt-get install -y -V libarrow-dataset-glib-dev # For Apache Arrow Dataset GLib (C)
646 | apt-get install -y -V libarrow-acero-dev # For Apache Arrow Acero
647 | apt-get install -y -V libarrow-flight-dev # For Apache Arrow Flight C++
648 | apt-get install -y -V libarrow-flight-glib-dev # For Apache Arrow Flight GLib (C)
649 | apt-get install -y -V libarrow-flight-sql-dev # For Apache Arrow Flight SQL C++
650 | apt-get install -y -V libarrow-flight-sql-glib-dev # For Apache Arrow Flight SQL GLib (C)
651 | apt-get install -y -V libgandiva-dev # For Gandiva C++
652 | apt-get install -y -V libgandiva-glib-dev # For Gandiva GLib (C)
653 | apt-get install -y -V libparquet-dev # For Apache Parquet C++
654 | apt-get install -y -V libparquet-glib-dev # For Apache Parquet GLib (C)
655 |
656 | cd $TEMP_DIR
657 | git clone --depth 1 https://github.com/adjust/parquet_fdw
658 | cd $TEMP_DIR/parquet_fdw
659 | # 这个bug 解决之前 (这个clang flag不支持arm平台)
660 | # clang: error: unknown argument: '-moutline-atomics'
661 | /usr/bin/clang-11 -xc++ -Wno-ignored-attributes -Wno-register -fno-strict-aliasing -fwrapv -O2 -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -emit-llvm -c -Wall -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -std=c++17 -O3 -fPIC -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -o src/common.bc src/common.cpp
662 | /usr/bin/clang-11 -xc++ -Wno-ignored-attributes -Wno-register -fno-strict-aliasing -fwrapv -O2 -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -emit-llvm -c -Wall -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -std=c++17 -O3 -fPIC -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -o src/reader.bc src/reader.cpp
663 | /usr/bin/clang-11 -xc++ -Wno-ignored-attributes -Wno-register -fno-strict-aliasing -fwrapv -O2 -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -emit-llvm -c -Wall -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -std=c++17 -O3 -fPIC -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -o src/exec_state.bc src/exec_state.cpp
664 | /usr/bin/clang-11 -xc++ -Wno-ignored-attributes -Wno-register -fno-strict-aliasing -fwrapv -O2 -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -emit-llvm -c -Wall -Wpointer-arith -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -g -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -std=c++17 -O3 -fPIC -I. -I./ -I/usr/include/postgresql/14/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2 -o src/parquet_impl.bc src/parquet_impl.cpp
665 | make install
666 |
667 | cd $TEMP_DIR
668 | git clone --depth 1 https://github.com/pgspider/sqlite_fdw
669 | cd $TEMP_DIR/sqlite_fdw
670 | USE_PGXS=1 make
671 | USE_PGXS=1 make install
672 |
673 | cd $TEMP_DIR
674 | cp pg_bm25--0.4.3.sql /usr/share/postgresql/14/extension/
675 | cp pg_bm25.control /usr/share/postgresql/14/extension/
676 | cp pg_bm25.so /usr/lib/postgresql/14/lib/
677 |
678 | cd $TEMP_DIR
679 | cp pg_search--0.0.0.sql /usr/share/postgresql/14/extension/
680 | cp pg_search.control /usr/share/postgresql/14/extension/
681 | cp pg_search.so /usr/lib/postgresql/14/lib/
682 |
683 | cd $TEMP_DIR
684 | cp pg_sparse--0.0.0.sql /usr/share/postgresql/14/extension/
685 | cp pg_sparse.control /usr/share/postgresql/14/extension/
686 | cp pg_sparse.so /usr/lib/postgresql/14/lib/
687 |
688 | cd $TEMP_DIR
689 | git clone --depth 1 -b 14.3 https://github.com/ossc-db/pg_statsinfo
690 | cd $TEMP_DIR/pg_statsinfo
691 | PG_LDFLAGS=-L/usr/lib/postgresql/14/lib make
692 | PG_LDFLAGS=-L/usr/lib/postgresql/14/lib make install
693 |
694 | cd /usr/lib/postgresql/14
695 | git clone --depth 1 -b 14.0 https://github.com/ossc-db/pg_stats_reporter
696 |
697 | cd $TEMP_DIR/
698 | git clone --depth 1 https://gitlab.com/pg_proctab/pg_proctab
699 | cd $TEMP_DIR/pg_proctab
700 | USE_PGXS=1 make install
701 |
702 | apt-get install -y libelf-dev
703 | cd $TEMP_DIR/
704 | git clone --depth 1 https://gitlab.com/pg_top/pg_top
705 | cd $TEMP_DIR/pg_top
706 | cmake CMakeLists.txt
707 | USE_PGXS=1 make install
708 |
709 | cd $TEMP_DIR/
710 | wget https://golang.org/dl/go1.17.linux-arm64.tar.gz
711 | tar -zxvf go1.17.linux-arm64.tar.gz -C /usr/local/
712 | export PATH=/usr/local/go/bin:${PATH}
713 | echo "export PATH=/usr/local/go/bin:${PATH}" >>/root/.bashrc
714 | echo "export PATH=/usr/local/go/bin:${PATH}" >>/var/lib/postgresql/.bash_profile
715 | cd $TEMP_DIR/
716 | git clone --depth 1 https://github.com/lesovsky/pgcenter
717 | cd $TEMP_DIR/pgcenter
718 | make dep
719 | make build
720 | make install
721 |
722 | cd $TEMP_DIR
723 | git clone --depth 1 https://github.com/petere/pguint
724 | cd $TEMP_DIR/pguint
725 | USE_PGXS=1 make install
726 |
727 | cd $TEMP_DIR
728 | git clone --depth 1 -b v0.4.3 https://github.com/paradedb/paradedb
729 | cd $TEMP_DIR/paradedb/pg_sparse
730 | USE_PGXS=1 make install
731 | chmod 644 ./sql/svector--0.4.1.sql
732 | cp ./sql/svector--0.4.1.sql /usr/share/postgresql/14/extension/
733 |
734 | cd $TEMP_DIR
735 | git clone --depth 1 https://github.com/bdrouvot/pg_subtrans_infos
736 | cd $TEMP_DIR/pg_subtrans_infos
737 | USE_PGXS=1 make install
738 |
739 | cd $TEMP_DIR
740 | git clone --depth 1 https://github.com/bdrouvot/pg_subxact_counters
741 | cd $TEMP_DIR/pg_subxact_counters/c
742 | USE_PGXS=1 make install
743 |
744 | cd $TEMP_DIR
745 | cp pg_idkit--0.2.1.sql /usr/share/postgresql/14/extension/
746 | cp pg_idkit.control /usr/share/postgresql/14/extension/
747 | cp pg_idkit.so /usr/lib/postgresql/14/lib/
748 |
749 | cd $TEMP_DIR
750 | apt-get install -y build-essential libproj-dev libjson-c-dev libgsl-dev libgeos-dev
751 | git clone --depth 1 https://github.com/MobilityDB/MobilityDB
752 | cd $TEMP_DIR/MobilityDB
753 | mkdir build
754 | cd $TEMP_DIR/MobilityDB/build
755 | cmake ..
756 | make -j 4
757 | make install
758 |
759 | cd $TEMP_DIR
760 | cp pgdd--0.5.2.sql /usr/share/postgresql/14/extension/
761 | cp pgdd.control /usr/share/postgresql/14/extension/
762 | cp pgdd.so /usr/lib/postgresql/14/lib/
763 |
764 | cd $TEMP_DIR
765 | git clone --depth 1 https://github.com/PGer/pipelinedb_pg14.git
766 | cd $TEMP_DIR/pipelinedb_pg14
767 | apt-get install -y libczmq4 libczmq-dev
768 | USE_PGXS=1 make install
769 |
770 | cd $TEMP_DIR
771 | git clone --depth 1 https://github.com/jaiminpan/pg_nanoid.git
772 | cd $TEMP_DIR/pg_nanoid
773 | USE_PGXS=1 make install
774 |
775 | cd $TEMP_DIR
776 | git clone --depth 1 https://github.com/andrielfn/pg-ulid.git
777 | cd $TEMP_DIR/pg-ulid
778 | USE_PGXS=1 make install
779 |
780 | cd $TEMP_DIR
781 | git clone --depth 1 https://github.com/phillbaker/pg_migrate.git
782 | cd $TEMP_DIR/pg_migrate/
783 | USE_PGXS=1 make install
784 |
785 | cd $TEMP_DIR
786 | git clone --depth 1 https://github.com/df7cb/pg_filedump.git
787 | cd $TEMP_DIR/pg_filedump/
788 | USE_PGXS=1 make install
789 |
790 | cd $TEMP_DIR
791 | git clone --depth 1 https://github.com/petere/pgpcre
792 | cd $TEMP_DIR/pgpcre
793 | USE_PGXS=1 make install
794 |
795 | cd $TEMP_DIR
796 | git clone --depth 1 https://github.com/omniti-labs/pg_jobmon
797 | cd $TEMP_DIR/pg_jobmon
798 | USE_PGXS=1 make install
799 |
800 | cd $TEMP_DIR
801 | git clone --depth 1 https://github.com/pgpartman/pg_partman
802 | cd $TEMP_DIR/pg_partman
803 | USE_PGXS=1 make install
804 |
805 | cd $TEMP_DIR
806 | git clone --depth 1 https://gitee.com/seanguo_007/plpgsql_pg4ml.git
807 | cd $TEMP_DIR/plpgsql_pg4ml
808 | USE_PGXS=1 make install
809 |
810 | cd $TEMP_DIR
811 | cp pgmq--1.1.1.sql /usr/share/postgresql/14/extension/
812 | cp pgmq.control /usr/share/postgresql/14/extension/
813 | cp pgmq.so /usr/lib/postgresql/14/lib/
814 |
815 | cd $TEMP_DIR
816 | cp pg_later--0.0.13.sql /usr/share/postgresql/14/extension/
817 | cp pg_later.control /usr/share/postgresql/14/extension/
818 | cp pg_later.so /usr/lib/postgresql/14/lib/
819 |
820 | cd $TEMP_DIR
821 | cp vectorize--0.7.0.sql /usr/share/postgresql/14/extension/
822 | cp vectorize.control /usr/share/postgresql/14/extension/
823 | cp vectorize.so /usr/lib/postgresql/14/lib/
824 |
825 | cd $TEMP_DIR
826 | git clone --depth 1 https://github.com/pgEdge/snowflake
827 | cd $TEMP_DIR/snowflake
828 | USE_PGXS=1 make install
829 |
830 | cd /usr/lib/postgresql/14
831 | git clone --depth 1 https://github.com/swida/sqlbench
832 | cd /usr/lib/postgresql/14/sqlbench
833 | autoreconf -if
834 | ./configure --with-postgresql="$PGHOME"
835 | C_INCLUDE_PATH=/usr/include/postgresql make
836 | C_INCLUDE_PATH=/usr/include/postgresql make install
837 |
838 | apt-get install -y libpcap-dev libnl-genl-3-dev
839 | cd /tmp
840 | git clone --depth 1 -b 8.4.0-stable https://github.com/ntop/PF_RING
841 | cd /tmp/PF_RING/userland/lib
842 | ./configure && make
843 | make install
844 | cd /tmp
845 | git clone --depth 1 https://github.com/heterodb/pg-strom
846 | cd /tmp/pg-strom/arrow-tools
847 | PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config C_INCLUDE_PATH=/tmp/PF_RING/kernel make
848 | PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config C_INCLUDE_PATH=/tmp/PF_RING/kernel make install
849 |
850 | cd /usr/lib/postgresql/14
851 | git clone --depth 1 https://github.com/apache/madlib
852 | cd /usr/lib/postgresql/14/madlib
853 | mkdir build
854 | cd /usr/lib/postgresql/14/madlib/build
855 | cmake ..
856 | make -j 4
857 | # $BUILD_ROOT/src/bin/madpack -s madlib -p postgres -c [user[/password]@][host][:port][/database] install
858 |
--------------------------------------------------------------------------------
/pg14_arm64/4.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | echo "* soft nofile 1024000" >> /etc/security/limits.conf
5 | echo "* hard nofile 1024000" >> /etc/security/limits.conf
6 | echo "* soft nproc unlimited" >> /etc/security/limits.conf
7 | echo "* hard nproc unlimited" >> /etc/security/limits.conf
8 | echo "* soft core unlimited" >> /etc/security/limits.conf
9 | echo "* hard core unlimited" >> /etc/security/limits.conf
10 | echo "* soft memlock unlimited" >> /etc/security/limits.conf
11 | echo "* hard memlock unlimited" >> /etc/security/limits.conf
12 |
--------------------------------------------------------------------------------
/pg14_arm64/5.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -vx
3 |
4 | export PG_HOME=/var/lib/postgresql
5 | . $PG_HOME/.bash_profile
6 | initdb -D $PGDATA -U postgres -E UTF8 --lc-collate=C --lc-ctype=en_US.UTF8
7 |
8 | cd $PGDATA
9 | echo "host all all 0.0.0.0/0 scram-sha-256" >> ./pg_hba.conf
10 |
11 | echo "listen_addresses = '0.0.0.0'" >> ./postgresql.auto.conf
12 | echo "port = 1921" >> ./postgresql.auto.conf
13 | echo "max_connections = 2000" >> ./postgresql.auto.conf
14 | echo "unix_socket_directories = '., /var/run/postgresql'" >> ./postgresql.auto.conf
15 | echo "shared_buffers = 128MB" >> ./postgresql.auto.conf
16 | echo "dynamic_shared_memory_type = posix" >> ./postgresql.auto.conf
17 | echo "vacuum_cost_delay = 0" >> ./postgresql.auto.conf
18 | echo "bgwriter_delay = 20ms" >> ./postgresql.auto.conf
19 | echo "bgwriter_lru_maxpages = 500" >> ./postgresql.auto.conf
20 | echo "bgwriter_lru_multiplier = 5.0" >> ./postgresql.auto.conf
21 | echo "max_parallel_workers_per_gather = 0" >> ./postgresql.auto.conf
22 | echo "synchronous_commit = off" >> ./postgresql.auto.conf
23 | echo "wal_compression = on" >> ./postgresql.auto.conf
24 | echo "wal_writer_delay = 10ms" >> ./postgresql.auto.conf
25 | echo "max_wal_size = 1GB " >> ./postgresql.auto.conf
26 | echo "min_wal_size = 80MB " >> ./postgresql.auto.conf
27 | echo "random_page_cost = 1.1" >> ./postgresql.auto.conf
28 | echo "log_destination = 'csvlog'" >> ./postgresql.auto.conf
29 | echo "logging_collector = on" >> ./postgresql.auto.conf
30 | echo "log_truncate_on_rotation = on" >> ./postgresql.auto.conf
31 | echo "log_timezone = 'Etc/UTC' " >> ./postgresql.auto.conf
32 | echo "autovacuum = on" >> ./postgresql.auto.conf
33 | echo "autovacuum_vacuum_cost_delay = 0ms" >> ./postgresql.auto.conf
34 | echo "vacuum_freeze_table_age = 750000000 " >> ./postgresql.auto.conf
35 | echo "vacuum_multixact_freeze_table_age = 750000000 " >> ./postgresql.auto.conf
36 | echo "datestyle = 'iso, mdy' " >> ./postgresql.auto.conf
37 | echo "timezone = 'Etc/UTC' " >> ./postgresql.auto.conf
38 | echo "lc_messages = 'en_US.UTF-8'" >> ./postgresql.auto.conf
39 | echo "lc_monetary = 'en_US.UTF-8'" >> ./postgresql.auto.conf
40 | echo "lc_numeric = 'en_US.UTF-8'" >> ./postgresql.auto.conf
41 | echo "lc_time = 'en_US.UTF-8'" >> ./postgresql.auto.conf
42 | echo "default_text_search_config = 'pg_catalog.english'" >> ./postgresql.auto.conf
43 |
--------------------------------------------------------------------------------
/pg14_arm64/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM --platform=$TARGETPLATFORM debian:11.7
2 | MAINTAINER digoal zhou "dege.zzz@alibaba-inc.com"
3 | ARG TARGETPLATFORM
4 | ARG BUILDPLATFORM
5 | RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM"
6 | ENV DEBIAN_FRONTEND=noninteractive TEMP_DIR=/tmp ROOT_HOME=/root PG_HOME=/var/lib/postgresql PG_DATA=/var/lib/postgresql/14/pgdata PGHOME=/usr/lib/postgresql/14
7 | STOPSIGNAL SIGINT
8 | COPY --chmod=555 1.sh 2.sh 3.sh 4.sh 5.sh $TEMP_DIR/
9 | COPY GraphBLAS-3.1.1.tar.gz libduckdb-linux-aarch64.zip duckdb_cli-linux-aarch64.zip cmake-3.27.4.tar.gz mongo-c-driver-1.17.3.tar.gz json-c-0.15-20200726.tar.gz pg_tiktoken--0.0.1.sql pg_tiktoken.control pg_tiktoken.so lantern_extras--0.0.3.sql lantern_extras.control lantern_extras.so lantern-cli onnxruntime-linux-aarch64-1.15.1.tgz node-v14.21.3.tar.gz pg_bm25.control pg_bm25.so pg_bm25--0.4.3.sql pg_search.control pg_search.so pg_search--0.0.0.sql pg_sparse.so pg_sparse.control pg_sparse--0.0.0.sql pg_task.so pg_task.index.bc pg_task.control pg_task--1.0.sql pg_idkit--0.2.1.sql pg_idkit.control pg_idkit.so pgdd--0.5.2.sql pgdd.control pgdd.so pgroll pgmq.control pgmq--1.1.1.sql pgmq.so pg_later.control pg_later.so pg_later--0.0.13.sql vectorize.control vectorize.so vectorize--0.7.0.sql $TEMP_DIR/
10 | RUN mkdir /tmp/pg_task
11 | COPY pg_task /tmp/pg_task
12 |
13 | RUN $TEMP_DIR/1.sh
14 | RUN $TEMP_DIR/2.sh
15 | RUN $TEMP_DIR/3.sh
16 |
17 | # WORKDIR $TEMP_DIR
18 | # RUN apt-get install -y libtinfo5 build-essential ninja-build python3
19 | # RUN git clone --depth 1 -b v3.1.7 https://github.com/plv8/plv8
20 | # WORKDIR $TEMP_DIR/plv8
21 | # RUN USE_ICU=1 USE_PGXS=1 make
22 | # RUN USE_ICU=1 USE_PGXS=1 make install
23 | #
24 | # WORKDIR $TEMP_DIR
25 | # RUN git clone --depth 1 -b apache-arrow-12.0.1 https://github.com/apache/arrow.git
26 | # WORKDIR $TEMP_DIR/arrow/cpp
27 | # RUN mkdir build-release
28 | # WORKDIR $TEMP_DIR/arrow/cpp/build-release
29 | # RUN cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED ..
30 | # RUN make -j4
31 | # RUN make install
32 | #
33 | # WORKDIR $TEMP_DIR
34 | # RUN apt-get install -y libcurl4-openssl-dev uuid-dev libpulse-dev
35 | # RUN git clone --depth 1 -b 1.9.263 https://github.com/aws/aws-sdk-cpp
36 | # WORKDIR $TEMP_DIR/aws-sdk-cpp
37 | # RUN git submodule update --init --recursive --depth 1
38 | # RUN mkdir build
39 | # WORKDIR $TEMP_DIR/aws-sdk-cpp/build
40 | # RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="s3;core"
41 | # RUN make -j4
42 | # RUN make install
43 | #
44 | # WORKDIR $TEMP_DIR
45 | # RUN git clone --depth 1 -b v1.0.0 https://github.com/pgspider/parquet_s3_fdw
46 | # WORKDIR $TEMP_DIR/parquet_s3_fdw
47 | # RUN PG_CPPFLAGS="-Wno-register -D_GLIBCXX_USE_CXX11_ABI=0" USE_PGXS=1 make
48 | # RUN PG_CPPFLAGS="-std=c++17 -Wno-register -D_GLIBCXX_USE_CXX11_ABI=0" USE_PGXS=1 make
49 | # RUN PG_CPPFLAGS="-std=c++17 -Wno-register -D_GLIBCXX_USE_CXX11_ABI=0" USE_PGXS=1 make install
50 | # RUN echo "/usr/local/lib" >>/etc/ld.so.conf
51 | # RUN ldconfig
52 |
53 |
54 | ENV ORACLE_BASE /usr/lib/postgresql/14/lib
55 | WORKDIR $ORACLE_BASE
56 | COPY instantclient_19_19/libclntsh.so.19.1 .
57 | RUN ln -s libclntsh.so.19.1 libclntsh.so
58 | RUN mkdir -p oracle/network/admin
59 | COPY instantclient_19_19 ./oracle
60 | RUN echo "export LD_LIBRARY_PATH=\$PGHOME/lib/oracle:\$LD_LIBRARY_PATH" >>$PG_HOME/.bash_profile
61 | RUN echo "export ORACLE_HOME=\$PGHOME/lib/oracle" >>$PG_HOME/.bash_profile
62 | RUN echo "export TNS_ADMIN=\$ORACLE_HOME/network/admin/" >>$PG_HOME/.bash_profile
63 | RUN echo "export LD_LIBRARY_PATH=\$PGHOME/lib/oracle:\$LD_LIBRARY_PATH" >>$ROOT_HOME/.bashrc
64 | RUN echo "export ORACLE_HOME=\$PGHOME/lib/oracle" >>$ROOT_HOME/.bashrc
65 | RUN echo "export TNS_ADMIN=\$ORACLE_HOME/network/admin/" >>$ROOT_HOME/.bashrc
66 | RUN . $ROOT_HOME/.bashrc
67 |
68 | RUN echo "/usr/lib/postgresql/14/lib/oracle" >> /etc/ld.so.conf
69 | RUN echo "/usr/local/lib" >> /etc/ld.so.conf
70 | RUN echo "/usr/lib/postgresql/14/lib" >> /etc/ld.so.conf
71 | RUN ldconfig
72 |
73 | WORKDIR $TEMP_DIR
74 | # RUN apt-get install -y libsqlite3-dev
75 | RUN git clone --depth 1 https://github.com/ossc-db/dblink_plus
76 | WORKDIR $TEMP_DIR/dblink_plus
77 | RUN cp -r /usr/lib/postgresql/14/lib/oracle/sdk/include/* ./
78 | RUN PG_CFLAGS=-I/usr/lib/postgresql/14/lib/oracle/sdk/include PG_LDFLAGS=-L/usr/lib/postgresql/14/lib/oracle USE_PGXS=1 make
79 | RUN PG_CFLAGS=-I/usr/lib/postgresql/14/lib/oracle/sdk/include PG_LDFLAGS=-L/usr/lib/postgresql/14/lib/oracle USE_PGXS=1 make install
80 |
81 |
82 | # RUN rm -rf $TEMP_DIR/*
83 |
84 | RUN $TEMP_DIR/4.sh
85 |
86 | USER postgres
87 | RUN $TEMP_DIR/5.sh
88 |
89 | WORKDIR $PG_HOME
90 | # RUN wget -T 36000 -t 0 --waitretry=5 https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-aarch64.zip
91 | # RUN curl -Z --connect-timeout 120 -m 36000 --retry 12000 --retry-delay 5 --retry-max-time 1200 -L https://github.com/duckdb/duckdb/releases/download/v0.9.2/duckdb_cli-linux-aarch64.zip -o duckdb_cli-linux-aarch64.zip
92 | RUN cp $TEMP_DIR/duckdb_cli-linux-aarch64.zip $PG_HOME/
93 | RUN unzip -d . duckdb_cli-linux-aarch64.zip
94 |
95 | RUN cp $TEMP_DIR/pgroll $PG_HOME/
96 |
97 | USER root
98 | WORKDIR $ROOT_HOME
99 |
100 | EXPOSE 1921
101 | EXPOSE 3000
102 | EXPOSE 8080
103 | EXPOSE 80
104 | EXPOSE 3306
105 | ENTRYPOINT ["su", "-", "postgres", "-c", "/usr/lib/postgresql/14/bin/postgres -D \"/var/lib/postgresql/14/pgdata\""]
106 |
--------------------------------------------------------------------------------