From eb31003d6a32daa96269d9f19be0af18d65291f8 Mon Sep 17 00:00:00 2001 From: azapater Date: Wed, 17 Jul 2024 18:19:55 +0200 Subject: [PATCH 01/10] optimizations - Changed the shell to #!/usr/bin/env bash for better standardization. - Refactor all the installation commands in a new install.sh. - Optimized the Dockerfile to remove unnecessary layers, reducing the image size considerably. - Exposed the path /root/PAServer/scratch-dir for an immutable image and easy access to binaries. - Added new environment variables for better future maintainability in scripts. - Updated the syntax from CMD to ENTRYPOINT as CMD is deprecated. - Removed the platform specification from run.sh as it was unnecessary. - Added a container name to run.sh to avoid random naming and duplication of containers. --- Dockerfile | 35 ++++++++++------------------------- build.sh | 2 +- install.sh | 23 +++++++++++++++++++++++ paserver_docker.sh | 2 +- pull-run-production.sh | 2 +- pull-run.sh | 2 +- run-production.sh | 2 +- run.sh | 5 +++-- 8 files changed, 41 insertions(+), 32 deletions(-) mode change 100644 => 100755 build.sh create mode 100755 install.sh mode change 100644 => 100755 run.sh diff --git a/Dockerfile b/Dockerfile index 25cad79..fc5ef31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,37 +3,22 @@ FROM ubuntu:jammy ARG password=embtdocker +ENV PA_SERVER_URL=https://altd.embarcadero.com/releases/studio/23.0/121/1211/LinuxPAServer23.0.tar.gz +ENV PA_SERVER_VOLUME=/paserver +ENV PA_SERVER_VERSION=23.0 ENV PA_SERVER_PASSWORD=$password -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get -yy install \ - joe \ - wget \ - p7zip-full \ - curl \ - openssh-server \ - build-essential \ - zlib1g-dev \ - libcurl4-gnutls-dev \ - libncurses5 \ - libpython3.10 +VOLUME ["/root/PAServer/scratch-dir"] -### Install PAServer -ADD https://altd.embarcadero.com/releases/studio/23.0/121/1211/LinuxPAServer23.0.tar.gz ./paserver.tar.gz +COPY install.sh ./install.sh -RUN tar xvzf paserver.tar.gz -RUN mv PAServer-23.0/* . -RUN rm PAServer-23.0 -r -RUN rm paserver.tar.gz - -# link to installed libpython3.10 -RUN mv lldb/lib/libpython3.so lldb/lib/libpython3.so_ -RUN ln -s /lib/x86_64-linux-gnu/libpython3.10.so.1 lldb/lib/libpython3.so +RUN chmod +x ./install.sh && \ + sync && \ + ./install.sh && \ + rm -f ./install.sh COPY paserver_docker.sh ./paserver_docker.sh RUN chmod +x paserver_docker.sh - # PAServer EXPOSE 64211 - -CMD ./paserver_docker.sh +ENTRYPOINT ["./paserver_docker.sh"] diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 0750f29..96cc452 --- a/build.sh +++ b/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash docker build . \ --build-arg password=securepass \ diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..4ea81cd --- /dev/null +++ b/install.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -e + +# apt-get update +apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get -yy install \ + p7zip-full \ + curl \ + build-essential \ + zlib1g-dev \ + libcurl4-gnutls-dev \ + libncurses5 \ + libpython3.10 + +curl -L -o ./paserver.tar.gz -L \ + "${PA_SERVER_URL}" + +tar xvzf paserver.tar.gz +mv PAServer-${PA_SERVER_VERSION}/* . +rm PAServer-${PA_SERVER_VERSION} -r +rm paserver.tar.gz +mv lldb/lib/libpython3.so lldb/lib/libpython3.so_ +ln -s /lib/x86_64-linux-gnu/libpython3.10.so.1 lldb/lib/libpython3.so \ No newline at end of file diff --git a/paserver_docker.sh b/paserver_docker.sh index 376c15c..c164e4f 100644 --- a/paserver_docker.sh +++ b/paserver_docker.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash ./paserver -password=$PA_SERVER_PASSWORD status=$? diff --git a/pull-run-production.sh b/pull-run-production.sh index 1c355aa..72af67d 100644 --- a/pull-run-production.sh +++ b/pull-run-production.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash if [ "$1" = '' ]; then echo "RAD Server Docker paserver Pull-Run Script"; diff --git a/pull-run.sh b/pull-run.sh index 173c455..1884826 100644 --- a/pull-run.sh +++ b/pull-run.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash docker pull radstudio/paserver:latest diff --git a/run-production.sh b/run-production.sh index 378e351..04840c3 100644 --- a/run-production.sh +++ b/run-production.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash if [ "$1" = '' ]; then echo "RAD Server Docker paserver Run Script"; diff --git a/run.sh b/run.sh old mode 100644 new mode 100755 index 3b3329d..18aec9c --- a/run.sh +++ b/run.sh @@ -1,4 +1,5 @@ -#!/bin/bash +#!/usr/bin/env bash +# path binding example: --mount type=bind,source=/home/paserver,target=/root/PAServer/scratch-dir echo "PAServer Password: securepass" -docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --platform linux/amd64 -it -e PA_SERVER_PASSWORD=securepass -p 64211:64211 radstudio/paserver:latest +docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it --name paserver -e PA_SERVER_PASSWORD=securepass -p 64211:64211 radstudio/paserver:latest From 87b4c5e887f3aeb1498ecf372bf69ad4ceef4f08 Mon Sep 17 00:00:00 2001 From: azapater Date: Fri, 19 Jul 2024 11:59:00 +0200 Subject: [PATCH 02/10] changes: - Dockerfile variables for PA_SERVER_URL and PA_SERVER_VERSION - The build.sh created the image with default securepass password while the ARG was defaulted to securepass - Dockerfile optimizations - link fixed to dockerhub in README.md - updated logo of RAD - clean up on scripts for readability --- .github/workflows/images/rad-studio-logo.png | Bin 0 -> 43679 bytes Dockerfile | 48 ++++++++++++++----- README.md | 18 ++++--- install.sh | 23 --------- run-production.sh | 6 ++- run.sh | 6 ++- 6 files changed, 57 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/images/rad-studio-logo.png delete mode 100755 install.sh mode change 100644 => 100755 run-production.sh diff --git a/.github/workflows/images/rad-studio-logo.png b/.github/workflows/images/rad-studio-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20885af16d7104699573f5673ffec2fc57b9df21 GIT binary patch literal 43679 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%0D#OA5XaL_HKC4(g>*g_lK^(YfgjBw5LO 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 T4237X00000NkvXXu0mjfr-Nz} literal 0 HcmV?d00001 diff --git a/Dockerfile b/Dockerfile index fc5ef31..d9cc5f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,46 @@ FROM ubuntu:jammy # jammy is the code name of 22.04 LTS -ARG password=embtdocker +ARG password=securepass +ENV PA_SERVER_PASSWORD=$password ENV PA_SERVER_URL=https://altd.embarcadero.com/releases/studio/23.0/121/1211/LinuxPAServer23.0.tar.gz -ENV PA_SERVER_VOLUME=/paserver ENV PA_SERVER_VERSION=23.0 -ENV PA_SERVER_PASSWORD=$password -VOLUME ["/root/PAServer/scratch-dir"] - -COPY install.sh ./install.sh +### Copy the PAServer runner script +COPY paserver_docker.sh ./paserver_docker.sh -RUN chmod +x ./install.sh && \ - sync && \ - ./install.sh && \ - rm -f ./install.sh +### Run all commands in a single layer - this might affect the final image size +RUN apt-get update && apt-get -y autoremove --purge && apt-get -y clean && \ + DEBIAN_FRONTEND=noninteractive apt-get -yy install \ + joe \ + p7zip-full \ + curl \ + openssh-server \ + build-essential \ + zlib1g-dev \ + libcurl4-gnutls-dev \ + libncurses5 \ + libpython3.10 \ + && rm -rf /var/lib/apt/lists/* \ + ### Download PAServer + && wget -O ./paserver.tar.gz "${PA_SERVER_URL}" \ + ### Extract PAServer to the right folder and remove the compressed file + && tar xvzf paserver.tar.gz \ + && mv PAServer-${PA_SERVER_VERSION}/* . \ + && rm PAServer-${PA_SERVER_VERSION} -r \ + && rm paserver.tar.gz \ + ### Creates the symlink to the Python interpreter in the PAServer required location + && mv lldb/lib/libpython3.so lldb/lib/libpython3.so_ \ + && ln -s /lib/x86_64-linux-gnu/libpython3.10.so.1 lldb/lib/libpython3.so \ + ### Add executes permission to run paserver_docker.sh later on + && chmod +x paserver_docker.sh -COPY paserver_docker.sh ./paserver_docker.sh -RUN chmod +x paserver_docker.sh -# PAServer +### Expose PAServer`s default port EXPOSE 64211 + +### Get ready to bind to PAServer`s default scratch dir +VOLUME ["/root/PAServer/scratch-dir"] + +### Executes PAServer runner script ENTRYPOINT ["./paserver_docker.sh"] diff --git a/README.md b/README.md index 4d3b228..d89ecf5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # paserver-docker -Embarcadero RAD Studio -Docker script for RAD Studio Linux deployment via PAServer -- **Container available on [Docker Hub](https://hub.docker.com/r/radstudio/pa-radserver)** +Embarcadero RAD Studio +Docker script for RAD Studio Linux deployment via PAServer + +- **Container available on [Docker Hub](https://hub.docker.com/r/radstudio/paserver)** - [PAServer Documentation](http://docwiki.embarcadero.com/RADStudio/en/PAServer,_the_Platform_Assistant_Server_Application) - [More information on RAD Studio](https://www.embarcadero.com/products/rad-studio) - Other containers: [InterBase](https://github.com/Embarcadero/InterBase-Docker) only, [RAD Server](https://github.com/Embarcadero/pa-radserver-docker), and [RAD Server with InterBase](https://github.com/Embarcadero/pa-radserver-ib-docker) @@ -13,34 +14,39 @@ The 10.x images use Ubuntu 18.04.6 LTS (Bionic Beaver) while the 11.x images use ## Instructions -If you want to modify or build from GitHub without using [Docker Hub](https://hub.docker.com/r/radstudio/pa-radserver), you can build the Dockerfile with the `build.sh` script. **Note:** The Dockerfile requires the `paserver_docker.sh` script in the same directory +If you want to modify or build from GitHub without using [Docker Hub](https://hub.docker.com/r/radstudio/paserver), you can build the Dockerfile with the `build.sh` script. **Note:** The Dockerfile requires the `paserver_docker.sh` script in the same directory + ``` ./build.sh ``` To pull and run the [Docker Hub](https://hub.docker.com/r/radstudio/paserver) version of PAServer Docker for a debug/non-production environment use the `pull-run.sh` script + ``` ./pull-run.sh ``` To pull and run the Docker Hub version of PAServer Docker for a non-debug/production environment use the `pull-run-production.sh` script + ``` ./pull-run-production.sh securepass123 ``` To run the Docker Hub version of PAServer Docker for a debug/non-production environment use the `run.sh` script + ``` ./run.sh ``` To run the Docker Hub version of paserver docker for a non-debug/production environment use the `run-production.sh` script + ``` ./run-production.sh securepass123 ``` ---- +--- -This software is Copyright © 2023 by [Embarcadero Technologies, Inc.](https://www.embarcadero.com/) +This software is Copyright © 2024 by [Embarcadero Technologies, Inc.](https://www.embarcadero.com/) _You may only use this software if you are an authorized licensee of an Embarcadero developer tools product. See the latest [software license agreement](https://www.embarcadero.com/products/rad-studio/rad-studio-eula) for any updates._ diff --git a/install.sh b/install.sh deleted file mode 100755 index 4ea81cd..0000000 --- a/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -e - -# apt-get update -apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get -yy install \ - p7zip-full \ - curl \ - build-essential \ - zlib1g-dev \ - libcurl4-gnutls-dev \ - libncurses5 \ - libpython3.10 - -curl -L -o ./paserver.tar.gz -L \ - "${PA_SERVER_URL}" - -tar xvzf paserver.tar.gz -mv PAServer-${PA_SERVER_VERSION}/* . -rm PAServer-${PA_SERVER_VERSION} -r -rm paserver.tar.gz -mv lldb/lib/libpython3.so lldb/lib/libpython3.so_ -ln -s /lib/x86_64-linux-gnu/libpython3.10.so.1 lldb/lib/libpython3.so \ No newline at end of file diff --git a/run-production.sh b/run-production.sh old mode 100644 new mode 100755 index 04840c3..9efe4bf --- a/run-production.sh +++ b/run-production.sh @@ -5,5 +5,9 @@ if [ "$1" = '' ]; then echo "Required arguments: PAServer password"; echo "ex: run-production.sh securepass"; else - docker run --platform linux/amd64 -d -t -e PA_SERVER_PASSWORD=$1 -p 64211:64211 radstudio/paserver:latest + docker run --platform linux/amd64 \ + -d -t -e PA_SERVER_PASSWORD=$1 \ + -p 64211:64211 \ + --name paserver \ + radstudio/paserver:latest fi diff --git a/run.sh b/run.sh index 18aec9c..4b4519d 100755 --- a/run.sh +++ b/run.sh @@ -2,4 +2,8 @@ # path binding example: --mount type=bind,source=/home/paserver,target=/root/PAServer/scratch-dir echo "PAServer Password: securepass" -docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it --name paserver -e PA_SERVER_PASSWORD=securepass -p 64211:64211 radstudio/paserver:latest +docker run --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -it -e PA_SERVER_PASSWORD=securepass \ + --name paserver \ + -p 64211:64211 radstudio/paserver:latest From 5777686986c0bac50f0b07a62df3920fdf63aa68 Mon Sep 17 00:00:00 2001 From: azapater Date: Fri, 19 Jul 2024 14:31:38 +0200 Subject: [PATCH 03/10] fix for the image (wrong path and url) --- .github/{workflows => }/images/rad-studio-logo.png | Bin README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .github/{workflows => }/images/rad-studio-logo.png (100%) diff --git a/.github/workflows/images/rad-studio-logo.png b/.github/images/rad-studio-logo.png similarity index 100% rename from .github/workflows/images/rad-studio-logo.png rename to .github/images/rad-studio-logo.png diff --git a/README.md b/README.md index d89ecf5..df6b6cd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # paserver-docker -Embarcadero RAD Studio +Embarcadero RAD Studio Docker script for RAD Studio Linux deployment via PAServer - **Container available on [Docker Hub](https://hub.docker.com/r/radstudio/paserver)** From e860880b2189f30807574ad327fc7d867be638c4 Mon Sep 17 00:00:00 2001 From: azapater Date: Fri, 19 Jul 2024 14:41:29 +0200 Subject: [PATCH 04/10] update embt logo at the bottom of the readme --- .github/images/embt-logo-black.png | Bin 0 -> 33752 bytes .github/images/embt-logo-white.png | Bin 0 -> 32015 bytes README.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 .github/images/embt-logo-black.png create mode 100644 .github/images/embt-logo-white.png diff --git a/.github/images/embt-logo-black.png b/.github/images/embt-logo-black.png new file mode 100644 index 0000000000000000000000000000000000000000..b479139e0aa8b4efb0af1f9fe62d5fc50ccb5611 GIT binary patch literal 33752 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 P0}yz+`njxgN@xNAjCpH@ literal 0 HcmV?d00001 diff --git a/.github/images/embt-logo-white.png b/.github/images/embt-logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..6457c911387ee7332da63a481dc9c8488daa571f GIT binary patch literal 32015 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 BaE<@~ literal 0 HcmV?d00001 diff --git a/README.md b/README.md index df6b6cd..32e2c8a 100644 --- a/README.md +++ b/README.md @@ -50,5 +50,5 @@ This software is Copyright © 2024 by [Embarcadero Technologies, Inc.](https _You may only use this software if you are an authorized licensee of an Embarcadero developer tools product. See the latest [software license agreement](https://www.embarcadero.com/products/rad-studio/rad-studio-eula) for any updates._ -![Embarcadero(Black-100px)](https://user-images.githubusercontent.com/821930/211648635-c0db6930-120c-4456-a7ea-dc7612f01451.png#gh-light-mode-only) -![Embarcadero(White-100px)](https://user-images.githubusercontent.com/821930/211649057-7f1f1f07-a79f-44d4-8fc1-87c819386ec6.png#gh-dark-mode-only) +![Embarcadero(Black-100px)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-black.png#gh-light-mode-only) +![Embarcadero(White-100px)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-white.png#gh-dark-mode-only) From 288160f41860623b53045f6e411509d56d01231b Mon Sep 17 00:00:00 2001 From: azapater <1220658+azapater@users.noreply.github.com> Date: Mon, 22 Jul 2024 12:44:47 +0100 Subject: [PATCH 05/10] New run.sh and fully rewritten readme.md (#1) * new simplied run.sh - removed files pull_run, pull_run_production, run_production - specifically pulling images from dockerhub is innecesary: docker does it automatically if the image is not in the local registry - multiple arguments to execute run.sh with default values defined - execute run.sh -h for this help -- Usage: run.sh [OPTIONS] Example 1: run.sh --path /home/user/ --detach --port 64211 --production --password securepass --name my-paserver --version latest Example 2: run.sh -pa /home/user/ -d -p 64211 -pr -pw securepass -n my-paserver -v latest Options: --detach, -d Run in detached mode - default: false --path, -pa Binds the container to a local folder - default: no bind --port, -p=PORT Specify the port to use be used by PAServer - default: 64211 --production, -pr Enable production mode - default: false --version, -v=VERSION Specify the PAServer tag to be used as image - default: latest --password, -pw=PWD Set the password - default: securepass --help, -h Display this help and exit * minor fix in the help * Simplify run.sh and add option to specify container name * chore: Update RAD Studio logo and README update * rewrite of the README.md * fix a few mixstakes in the readme * more fixes in the README.md * resize of embt images, abstracting links in the readme and minor fixes --- .github/images/embt-logo-black.png | Bin 33752 -> 19856 bytes .github/images/embt-logo-white.png | Bin 32015 -> 18269 bytes README.md | 242 ++++++++++++++++++++++++++--- pull-run-production.sh | 11 -- pull-run.sh | 5 - run-production.sh | 13 -- run.sh | 96 +++++++++++- 7 files changed, 311 insertions(+), 56 deletions(-) delete mode 100644 pull-run-production.sh delete mode 100644 pull-run.sh delete mode 100755 run-production.sh diff --git a/.github/images/embt-logo-black.png b/.github/images/embt-logo-black.png index b479139e0aa8b4efb0af1f9fe62d5fc50ccb5611..257833a312df4aedbe5b46d007036be1d8eb0ae9 100644 GIT binary patch literal 19856 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 P0}yz+`njxgN@xNAjCpH@ diff --git a/.github/images/embt-logo-white.png b/.github/images/embt-logo-white.png index 6457c911387ee7332da63a481dc9c8488daa571f..500cf98bec828f060822155e2f4f5c735b935935 100644 GIT binary patch literal 18269 zcmV)zK#{+RP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGy!TyQqj1r3wltO+XL{d=V)E zB3()#AtZ!!ve|68<@-N#%AR}omUDOSh5+ZezxPf#Gw+l$Gw-xBV`9XJ5hF&74GE5? zZV<>DlepHH)L1h$vDD1ZJ!wqlY-4iX;}|hw#E9`Wz6(dHB7;inSH^KDNF;gb4&Go!D;W&Gz^7$PS#!OEc(~M9uX@*L!nllYn&7L?Agylb3*DAY=?e%A_z$I7u&ogwQeRT%V9yl}MQXHZ+(X$FUJk z@NfOX6n|Z)H>UEr%X7KL`@gVy{wf~Dh!G=3j5jHULNGaJjU78apG}^SH;IosPJS|0 zX$9m86>PPbgkHj>lyDNIF@oyg_z5u2Oh69^ECc4d;dB>c{_^1(C5^(jI zhgDIraPkF|FPx;hg2ok0va`Y|r}d}2c`}tY%M!^xe=wDBvhF;$zMsYU+}cIS)Grz{ zsUMxcdcjJpW0U}b=~$HCA&8W%s9!r)iX&XCs>^#c!SeYsFo#;13 zFfFkTVr($5jnDw$oHcU%w)r0C)~w@vnvs&0f~;JsMjE>05GGdjNb_y*F=_=hRhQv; z24T~Sz86&+AG#9>tKT@QC$1m4&%rbcXWwl7duqx_w4(n?SE~0fpBgb?D%LS##E21N z1IB;_(^p1LIB1=dxC@yu6QiB)5m|}h8LZjW_M-xU6e3q3i6oTzR0$|wI5lF|oX=T% zpNG#c;E7wQT89F}&)IEVGBM|*F%$N(HZfwvh!JChM9qTfEMrn%8a43*MkCi_9P0}i zsX}F97&SQw$T5?$xsV^1Z=Rpe&l2twjw_oi zHtEeLZvOa~iT~r7W5kFNBgO`Xngo-C(z=loPRZu;zrxs{Mn8;F=79JMn|%T03ni)U zNGU9!JmF;Z-n5>`j+)#xB)JI-DDn37;wgb9J0Cb7md!aAe|+S`6SZl>vyKrXMvNF6 z2x@AWJ4a1Ah6evT#&O(TEglJBHEi!AZ0`%HQo^ZFK=~u4KC`CpdL(R6wZTE|#moA) z{4{QI?Sw8*Er4TMvI*zM3r0=+fM*jUMvNFSHV{M=OwQ>eCmftLx$}LYBp@3sd?8Sb zuz(1=DYo|olE@^JCee^a>ZGi&vBC*e!l_rP%#50{PQos11zd_?U@%VvG?ZMvNF62z=R65vOYRos+l|?Rc5x$@f@Jtq255Q(K#9A2-%) zG-F#cb*CN8_$}XIMoyh#Qmw5#7MHxqb@!N##jlzb&p&ToefUwc=;239=aMC+d)YFR z$Yjl8+$>EbO#`YuZx3G$c=flAOE5i;UV=yx*yUP?MBXe;Cd@t;FI)7iXZ5y3yj?uT zTOILs@iz~u%8{?MPa55o%HM{p*hyx2@JT4A7DEC-&m@fYJn00p`Fm!W(VI*&jl3wt9z7obxn`#a{=S*|@ zzwR}Aec=={X}cLU2_+$sPMcwjsy2P!LFUlwt}-Y6?KZR9><^hF_F8kYaY2zZnca^+)_nTT+sy8t`h;m{YxABA4)k=)WQ5zXzdF}^@%n4c##?XgjecA#B!=PP zkK!9f*lg3{nA7KtnY5j26C*~97%_$d3>wnVa7L`!TwM}n1=C5$luSPV-Mr&8sexY$ zt)SIkjzCxuBAG?Ypfx=Ag@FV_Q){c4{qrB0_kHi%rg`KDNfY;B9pNMsX4<=VHYZIGgx0&3tzG%r}Npjmp^ zd5;GK{5z0daFh5-^~~WU4mk+VrcL219x80;wZymHp>P$x@;Dq9Xual%pfI7d7YEHO z4+!{8Jn_U6LH5=OnZt#AAaf_r)N5n?K>QH)qbAH>w^4d89ab)-?mawmyaO zS?^z`zzqoaZOLRZpG3U{p4Xt>iuz?}wC5y1*_Zj5Q4>$;GUnVaTxfTk?m$vY>W@mo zeFV8xm<(OZ@ zd_QzI)G2>MfpzQFZPwV>_-?}7mT)%4Y9!QxUX^nlv>Njw;`tbH{wHpq(>wI;g}VU0llAHx4CdR3)J=<4d4-q6tS9{kS0-$bm2L27LDo>!wTfu4b{-t{9; zcmks?AT1LqYr9d_bTIQ2NM)@RQsbmAFOFVxF{oPQ>i$m+Z#zdGBMmxf1Z+L8pejL_q@YG|KJ^JjV*EcBXX@0pfu&i@1x2>eDDxbpjZpI33tC265&oO_YoOgLk9@ zaPdDGzdwflia)h2dS`72s`tX^*Irv3Id0teOeQfm;W%4JY^Cx~ zCfgcjUN(Pz$xooj;El=9o6#}^w0MYB~-tr@(F`R4V%|aHH3t%K07Wa`?V3`$`~PRRt4n)U$an^jSy^ zZ<6OF(9o6;Kk!W=#$VcP{nu%#6x+VMfo@MbK-I{w8ni}8Ms%) zyb`UB-?AXMqwxPv&!{-*boS3f{|l*c3gW{vbw1vYRmF`YxKpR&04lEXcMqsq{whsU zp2yjF=>JSO3+=-J0$!SH-w*Xus5-t&<+p5E6BGdymAU_thI5I-_0UrLa1em4>XJHO zpN8HKHC4$El{eL=8;Hkm$jAGLN4NX5eu4>q^8XR&6lilu(W(}&m4tIK#!I39;=Hig zDFghaDHH#Pdv#6}kka=ac&P)b=T1*g&(`U5T4m-Ks34Dc{wLfX?iou0Hw_4g-N~;{ zp#LD=8^Sz_fg34G(+ZsZ4!zo#vTYacTFA5CzHHTrGf}#_p#WkAO5e zS5mf^d^T}3LTPjNIth2{bsy>EZtaAl#6pe4vB@Lp+fpg>(Qln)rp;8xX8ohFt<9Wx z?oZ6LEw}V+NKc3aKga!#dc)6ny0uxG(F-nz6dAlR88}shUcF*FWakBF-t-r!ck%2a z*jIePdIsd?82rqkaC`){z&++vZ*T91=;^Bw{3d)y-uY$l-5shL4?%7~ ziumjVT?VhasL<*_RP`%2U;_T^I~QSX=f`=LAWk1Zos02g+_lTGo<)UtK<|R?q;dEI z-uHo`>y@$Z*Ak>B2^+#G>Wx(hd-fU4$E82Ht!!ltC@dh+WQ zyh5jL^3Eq29oZ7;kCa?tA1(&<@82L9E!97kMlhsV2Nq5fV0 zc-BMO7osYUUn`R)yeHHd`8D)YsHP48?$tTE6&^Fo#32u@gkJRG@ha4B1gJ=WY0%a1 zQzJf*JdrR_ejHC+3hI&%!tTP&eCP#e1>`+(fxl+_Ybx{(jEAGv9FH&vPwPfMLHm29 zPxyL-8c5u7(2rMcE~Tc>cnWhY7C?@tM+jYcKe{W z@2Owr_9VJ@OE_jDf25?^FM(tQ6!~mFWEIIC7L5>NN7Ib^@#DvvS*LyuiPn#8S&(wG zOx#IXwn4j%;kom!G`us`PzmXRl{mc@!3WOvl`xqpfl+0Zws&CJQL4NZpcjt)66`NP)pXh@!k+|fE>-cselMPXAN46HhzERB zq>kj-RZzbL&vJl;rgXjt?{C2)XmGLXh5oK*kVZo7&^Y3uJP~QiMe*5#@P2^$EaZ9y z@S2GELY~!Ju?75Xf^t4#7NiB9>M-a%N$_0>{Y}>H(>`FI;Jthf?XMJX*VfvLp5WP8 z7-uS7l%0*eJk}b(NE)U0;pPJ3V5g9M;8r8>lX<32KtBOf4BTjRqLKP<@as=c%RYns zgNg(C-QcM*tarVs7mtb9wef6c+@E@RHiGXKHlQtCG z$@AiOC&8t)UJLjhgx|BFE75-kT8Nu9sM>gD-%-C8b=2rd*V3{ct`@`n`Sy@0@KWykojj=02~2CC|TLzJZ|Y>R4;}_`WhQmYCBTlnun9kY~c=e|P2b z#Y#*;gF`3y)6Xb;xfJfSrvEff~`4+FOnXj451aWesKwJ>}++V|nsCX9G5L90ft1}OoOR=xmTfl7_72s2Zc{*+jrW1MgCzOx!ELa052jV6HcpW@!?-{?! z)A`~}gZ+2xmFE?K7v+OCB52+1BtK08c6xuGgi7^S6uugxzwvx`*T!Oh?2jY@P06B%|+{FH)0=Yar>25UTL9Ys?LMzL9nwG{&!-ha#-~p zQLd&mH8p9ojOv&LaS@)x?(@*xYJ703U6}8LF2L;$kl#^UMLe`dtM$&vYfQLT&t4-X z38kRNjbE*coc7|2FaCY{^ywALF#Z)MO}Agsu#_Qq}F+_`iAyw_fP{T#j4B%j00|DvBk z{J$(eK}HKFwM`sDGkmZe9a-|$l1Q4JzN2b4($48VBwAFnsJF*F*xP01LQjkzYo>kR z5L`t=_v>rSg-0K6?)k&DW+_5xC1I_E|2p_8N0poY8F*dY-R6P2?=jyw{7CcI-}`j{ z%3|DRo0^>uQk&KXUnmK#IQ1c2$dq^XIe9#Zst&FBoCax*UWG=D!AWGc8ty)ZCBXAu zNQ(F#Mt@Veh z4W58IEfnbn<1fHZqnPl!(Uiy}R~rp@e;54hA;9RB7n(1hMdi~7SMRsfH z{So`fSB_7fJh_v1tx@SONn4O+`0S3|yFFuB;HSBcNU1m;qmw7zfYnJ75rjt6p!ydbvk>jGxi1Z+c z&im}=&2#tNZyG5#5_%fFNFeF^BW)+sIe1Ips}E%tAWB}7x@fWa$;qEK3m$($Y^s8U zn!S(ts2y<$5=zRw;rGy=Q?yQ&p2 z4E(6^d;nF$e~tPqFl(Jhy`ze^3e!j)fZJdv3p|v!8ihqG1VvE%;iplPf4;9Uo;21p z<%D}RCK8(Jt!l)30=y&bh{L_6z|O-@xWcTa5j+MS_hMhQVF&~FYKVS__I%gI1-v9| z)j=uw&S@~T)jzm66L%79U!|;RWKv66v%rr!TIz_X5%!_)U$oX!vE1SB5UBXH|9_AM z?S3qnu8abBsewKbt%Q?J3w$*7SIb(frmxO|PcRat{QV0>n=!PTtR}#V=FQPmd+<35 zW;L&0p>dA7?y3&Qm++@Dq_X!t^q+^fK0m1l+-mgqecXnHzsj0sVl-`?I^dyC1?zQ`^c9?M^(Cj_xTu*DTaCvKIouWRK&? zoA=N?PPo%_2qIpmJ5qA=Ld=sr>&*SV-R7lS)^w}smPY_XbLhv8iM+P-z%93#zut7S znFpT^1YHw?rx9)ve3~AVsvUviOKWQNvQMG!Sh>nv`t`F+FQcd^n7rjX%-D@LLLj+9 z$%o=zSo2&Pe-uSEYEI?cUP%;?Kk5}|+AHX_Mg@Mf&9-Dg=Y{l>jU&mfrg-mAXfvcS9;vpOJEg+MvrcP;b@(i?QF;JMkbVZ+MSgD`NL z#Q*lv<6aw*z6C{U484wsrqwL)FZ>an>QMLFv=kNc3!MqC|9Doi(^{uS&{p75*0hWE z9)#3+r2QD;a!4kV(aezE`(ll@QG+HqkR*#IPHdufZl@Y**OhQ$1r%AeBGY5;W0bTI z;pE3Y+^CP8Fy3sjL$vMT-D}sHOTPO9Dr448sV#-)@(jX>PE8YBHMX(ShrTe9UcxCv z|9$Ww^XjwFK8a}=G2Bd@v28FtSPUzKJnDmM%HRYp_-@H|V(g5i_hoPNXW%HJ}=$oxzvk_+P z()v1adCs#MFo=t098QH_)v3`ih=V>}4|Y#sR{7W3?|???VZcM1W4=S2f;xp+Q+kni z>ETyvW?IjS)FFbm1lpHzAMS{(#!hKc^EfELL;0+!<6zWgVv`w|qEWM^7~maQb1{1KDr`JQg`pG+?!q(bk12djRkg!hkJ!ZA8EH>zPH!h`^RhLy*g<8w%fn2 zZBu;9)&64poXO8Pe)Q<7Lw{a|D)X(bX<*>R1icL(@YVEPc*?0(C`o|?r$9*V+Yj}k zfbdmVv{ii2A4>}G(KMQRR>9f@W_|mmk0<*9ck1Z}LJM;*g?Ui<9D>pmo_f%Gu1PQv zA8in+>ADoc*$E1^)WV~ie9`x5H8q?Sph`dA)!IDQbgVv7Er!+@Cb(KR9`s=U&od4d z3wWpD(RHxfuNZ`@rsP=S86GWZ?czqySP$sbg?l}HRH#!LZp8nKqE8jdH6Jx$&6+iT zMS0aV*>a)jY6-)tATEl7)`^POZOfvot7{7GgHIzo9@^{_OrO;O55rI27+Rp$@`2Wt zf*B9Y5~xq6(`jucdKA4*$LN=*K}F0aGFv7b)9#O!q(0NzMG4FF)!q=qNhK=fB+TYp zZykIyR1MEQ^pNT8>cX#ng8RRcd|HWc@~02AMco&U5>W0)&L>7q_djUz*-|ms!XozyKtLEfac=~~&U*pdU)efa-i7X8zqj)MLn3{-y1?$$W zyWP{*3r~=)aN*SguudB2SAekB`rTbTyF-MPcJd82pM7XoQBWwn@Cyq`1<>wl>g;Dw zP45SP+Km%zcmU79Bgl`zf{L!)fR_=DzVq=(`CFVeeZYG!_I}>p(%s!%^SVhXz*h~D zXR=TgE|<6Z@bo>N-Zq%vO43o6&X52v^{c-N-$)~E+^KAQlr#i!Myrv!HqX=rBS(%@ zhx2;ZWcllKkx0A8aI3YdnvP9tY;4pKLqP|@;}L8&s0YaBwTzH-icJ8**lYFb)jCeA zCIpQ^kCWd~!blCjwgEiT+ieyhD8d^8e8^J+f~YZ(G)<|bnYuZGzNq0ZhgAy~ndw_h zhqf?NH`~li-ei-28m3J(qo9e?rkRPGh^Cqes3Mssc_e*vTbt?bjMm8rIsae&<6qHRPmG{VXk<2bD#6j56SL zlrs1+`K*^1=6GwAR^^0ZZ(1oDktVn;(Lu}tQ!bJ zGZIg`rmE11ELLQ;5HIhNq@nXR5W_SnFXqXQr{Sx98fgf#b3Qy5Tf!1mR-tc$< zbFDn8f_HZrrgvDd!6qt#3Ub2eNxw*${AXLp`UM$;QdWD|ClBxO#U z66orhbSh=ex%vvT{r=JR33PRIm~3y~lxE)+3Ku#o)(^2#DbT6nP3`S^nVwB~Xcyqu zW*uN&e!g#As=6=Njg!xxb@hr@&v9++3oZVRNiRW%nd+F50V9*i9F3w~Hie$XkDa!HuhwIB zBU~Nz^p*hWOHr234TdoFz&;h;$r&E*ykF`ml;N$}Qs^d`8yN-gc zt}cy~!_z)m)2iB-5=WidU#gnZQ9ip0d`bL2luYbEH7X+t|xNRpiDgwa- zyK#wJ-aOme6SRgZEgI2i+D<}A>q!zuQtdWw5%z6GjsAuPGRri!hQH73gK{xU#mF0H zM5UW;$#5;`*S#WvswXQ9B?wzncvU~<9SErS%Cmygh%u}1M(b&mfeJq~qO-GeDh=ce zNJk@m6#5=QL2D_C=*eq6P=~EnoieEecxmf!sUlMnN*j2m{yZx|+m46yDujB0_^b0U z4B8ml7Se~avr*3>Z*M|XZ(pATe3|zf92->yT3;+a`b!x0mb_gu#8=GnhbG<`tK`I?|R4XDZ zq&#YR%9YXOkXg5G-B47ddhOC0C^Vf=*Qtvl6i?d~99dKe6mp&KrgQvs9M68JXHcPa zc9+fwd#I_Y=|0qd;8fo{X)04&x^>v9zA&$KyL?H&tJZH>RM(2XCmOOwcrZ{S^7`wq z>!gs~GMUV&II&Uv{hlJHid8(=2`6B@aOZkMR@C4f+^Vi^wkPuo{Ao--VB`ch8r{t)k`W`Bd;eU<{>Dhyv}}8Olbpcz2z)YgcX5y1KgFLBZFz7q?;5 zl%UprzD?tyBl~qskfw$vqSwWRB}YZn8Cc}>HTrCS)NO5~(3yrhb$km*0%!zOvZqJBDs$&W$y=PL;V7QUsM~J563}{Z zwR0wwu7Ws`R;~3a?e(Tjp>RH`J+AmIlb5eGeQU-$Eas^VNJCcc;H^9k&-OG9A3l6Q zQ+c`Pd%E52A*wzk-CswNP}1ngpT6@)O!DZT$Ur5P&kY(B08dvQdgCQX%G(h`Ef|aW zmmShl&^1DOC*|zYbUOV6jpWy{-kWz?_WKwgs>hJ7BX|+@Zqy&)Pq&Vq%;NzUTq=95 z)0`@R1%i_JME)>$C_y}?k+-_L>nZY9U*PLjQJsQcwbI~6H?``!rTZX#48CV~cejop zs+zaBRb%D1K|Y3JTHJ#0RF^B3YcEbEJ2dMF;ZF(rL1}<$EjI<}!M{e0L)NZQH;UhV zvZJG;_&rxdQ1EtYZo4<(BU7<=);wN>G-ar*(fXc8Taj(0 zMz3#sltx==iBGM&@^p)6p*X977tPnm;K=*eY4ZR_2iHZ}74%pSXeHsb54?OT( zBMjxOzKzmIMpKU}@AL8VGHKDt49aumsq)r-IK6i5+R05#O)p{g^S0!!JnS_x(RpdX zbXK|YSq~6iJ84-!Tx^F1bH81A*y-HFe`04h3!oP?I`4Nf%Md_9=O)6|RG$T5mpWbi z9hgSAOUQS-)<-wqnJKEyj!)GpJKO%AvQn_i)-SU3h6nNyL91;qQVuI4iRn zf|B^|miFuO#yv(|LdoCcpmik}(yj5P@p$eFB^@E88ug{W-D)=5zF;FuNo2aZ%oq1P zkcejC;BE`ozpl{`U*9a%H~U>G>Geh=iX|cXgjC^%^HRb~cFSH_WY(>Xwrr!Y1l6hr zlRx*e<*x<}D4G0r5lnMYv@SCwy?Vk^?^<*B7MQOhtb#_`i@&a~)+nc7M1}oINb%L_ z3%VUsC!R+h#o%{+3np#M(9tW$dsedh3+BV1p&p%<1nJW5ISHkLbq(x0u)6}S&b-sL z?OIP;i(0CB^+Qy_MEdnn>C-$5dbO0#Pf|XA;~DD;!qOtV;^J@D?dtOZm4Lv~ATk zEJK8XjR0OHDQNg8;JPULBYhA#aJ z>friBcX#*p#HTdjQ;K^dLP^tg zz990s`%`#YS5kLFLg|G}kIClp=GB+=A#w!3W3zY82zdHXj`_Lf>-}!CRG(z;uWJ?a z2qVldfYuD%^#)Jx*%v{4l|Ice&?;+nHe%x5a?rNbq1gC zOP<~Wvkn@rRJ{ib(zv6iEepcely5<26o0zucu3;3KH%kXcqT%l_kIWa))Cu!ss-Vz z^HI~Ay8nlAO~B31-+z0Ju|lGRaas#bzMLB$_IZf6;Obo=<&&T&sU?~{?0jUNxA;kxgYWsNIN9v@RzO}Pm zgm@|afw1)4Yg#X8E8m1zPWprCO3I<8$iufW*A2>NXr^bhz^rw|nx?CR%+5AAFEkiu zr7M(NArxNw@u%>zxr})!(`(8UcnY>yK{UBRS>W@Y+ zXal}hMnyViT5}&-0oNzJYB?oDd@h0D2@9OQcAz52O}k%N`+1dSo9=wRYiwigakOtc zP>@u>j_{22hPHJFTc>G6wa6YU_zHx5C~m@2cp6dFbZ})QWV2a~7S?xT^El}UdXA*0 zk+i?pGu9KE5YChEe#N5~F$YKNW7Z~<@JLiAQ0Vs9dI%+545w*YH5nB_c&eN)5q?-$ zO9({$K(`jC&lzRJq*2_%p3#T=)pEh$h6V`*U2qu2Eb_hXqjk!e))IqGCuZeo&1ZfF z6>~y+dsix%cnT&#Loc25Dq%X&J4GNb_4Jrt1!i5yjWN$Y`k2XdhtKURk4@jToxLW* z_38h+szzg)V4jXiGzFSWSQDV}A(HuB+iY$2KH$A(f9Svi_BVS#yLj~O1K%6aF3=Y5 zoMDBQU;4wMN@MsWUKJpg}=)U|;r=#*f$ z2J>B>F*1URxy{0b-A>+lBwU=NhpAOHT3VjzG3!X1??z=$Pgg8kW}f=zeV%P)q#7H{ zi9h&`88)Kt6BO|t2OnP;4M*@aix`DTZ6VAy^zG1aX!5wRX7=wdHAg^4LC5|6GII)a zS_wKG+U1}FY(hmgE#iqfngoo3+9Ab3xtT_4*-H|kM#t3iPM9|%)bojU17t){Q1!85 zaLs`SUGEVrj^f5&<_qHq+=TlS0|xx{`ak5F)*pz!dgFg2{2(2eXVPc}_cIL^u+~WT zIQXha`*;kqKb50uP~7|1bXv42k18N+y}QUaKNGK~@DofkVb%e=U&OBBCWTs{JV~e1 zpMrO!O$@lx1(3n^aBu4CcrR^r0lahx<`?1pKA*7GXk$p$PT{XZro+4N#*)tk7e&?q zBM8Ut?Dj!=bO?0K$8H6J>1+ySQzCyiH6|xvqiH-f;v!A!X{zqkjN5idAi2-|5tU=^ zxaw+?$4wMWVFYvHch9jWlWWRuQy5N$S{TbTQfD>3lxlCaMJP4GS87u(i~GFU^~^I& z+vIYWo)#j@2yelhd+Ze8c;Y!hL`QizYLkQyBq1b$WC?dxNafAiL@rV5_vZ9H2XCVQ#pVHnFg3qE)iteOWHK2|YlIhqN6~0T zx>h?1y1KeFG6=41hp(=^F1{hOI4|oWlmx<)kd1sGFY(fjzu;aXfpWJOeC+k%^#Ht7 z-ahP_s)P7YOmo-bFUTkC6sO{K(E$Tq+rTrJTEwhQi$0;KY4=)G!1p=A2&VHeYt8Ko zYu2o(cs5@xfWPh<(~0R8m^Bjq6XDc6MH~nw0m1Zlima7xR_Gusd@J>6zB0tsdKK6;ed^=Cge(~g|2ob|X>#>(gCnXc!aHzSFy)}_={lrU76SyOjb z2tw)#i6oR<$}eioCUk4%+ZvRCS=ns%V-&JMH=I=V8Swie6!3zt?p!Lqin|y4f^RG^ zzpGAh7zQ65VO00|^(a6HJxut)_1ww}@UhHE65uE|2x zxZuM|!q*P1g0^5FAa6Cw{VDt+-}&X?YT_C6s`0O>vme55(9_89(a7X0@T_TyjPh|a z{(^kM{|L-Kfd;+S1P_gBPl2bJA`8sVV%FJtLjrhbNYl3nCs>-mZlji#mea7SN4?U{ z#qYs07^!2{2iP~brrJ~h)qoJOuO|Yl(dz66Q&!|ZU@H_U{0OgE$3huJMk<9d6|gx(&g*NkXLn_-hCnaz&; zh}n0}-^{dQ{#TK38B~EraF3mLzDccIWi*Cw!=I=HYKEGiMyLUHqEv_)oczsazrOHI zwI#WpprG|Y8o6jq;`;;0eIk37Bu0{#7pu?#9^^y=Wx;@e^{3)gy7p=-Zhgvt?CocHDb~zNn6hwlpde*W?f4nd4YJm zT|t4;qT!34Uj2pZC~R8}qySTJ$F{b%>PVF0>6u58$>dF*z5uwrg|LDhHJHakszd|o z*%OCx(B<&Zj_&+$$@|DB>-#Qjpw6Zfft0=?oRjVdB^J2=67E|({$H(%7Tz=Z#S)5Z)HaAwWk^P zp%0n~M;&2CA9R2jw$qNLN$W`^+miC=VU+aHm%nC`>$*&%)~OIi?)p{V8kWDFr4lCc zr}Ge0_jk9Z2X(~In;jG^Z6Ve{r*=vW{dDZ+K$_NzR4H+nq`~|ks=htix2WJQr!ssR ztCGi}@LavE*nI)gYl;Niwh+$IsB@`=I{QyInP#9HunTsBVXx_<$b1I_ z;-TK;rwFg$-Wu%HBfp(I(;=vl3Ow#~mf$grxNd=Gu*(X2jYiLaXTMQDcJq0rH5AXr zrvJl)eKr(ngMfhBM&kM*_-Kvrvyi6Eve;_}Sa`}vYn2uG;^uMueHVA(wZ=4bD)zsJ zg0+ikfX5g}0!cU4`r$r_S<{S>*VCGtn_nheZNvyqGp6Br7Ix?JOvjT&0&Yh^XQRCY z9>LBp>{QQAn>caefJPRzLhqjPqOuq4Iwbt@*x!V`PL_{6RY}~phV%)CrX>Sef}M7E ze+HfdKF+M4VEWziPzh-5Hk+1j6P`=qX=bb%&{u`Ho z4FnXfyD6++qOj@^Pnq>u*+rNifOJXR7LX3cv;{!wvSrJ337YH=gYIHPbS(w6;45?7 zsiL2fPN&NrjENteL~sf`g7dYo)BLs89`2w))ZwF3;T0YsXqsd=_M1R^68G<+K8L?c zAiHqQbDf6$O?aP$FRwMyNHOsf)cMH^lQ4nG0 zh_6mK7lk_vuuI7AgS^j6@Vhsp%L>EmGwN)NhPET_r=dQE^{M!?Venid$0Hb(6y$X^ z;3tp3zZrhYm+;i9MmrkK{f9XHl;=BjbaYI>9CU2ZOGxWZtL-6;QvQR#GoT>d*h?sB z2c_-~TW=su*Aun`ZXgWFt9D5B-Ssj~&cBfEyRYu8Td>FL>pXFtQN^Ci{U z^IQaZeK_`my1t~3V+bb<+i29PROT*9>UQLwd7-=0ZgTKNk#4k=IiaaM%+{U*_GZLkhME zuXV+wy+2_dF1b5~7xH#F#8syNXeX2AKt6(cKIWjOhn?o?B{VcO(t%lmycsu|){(oB z==)9U;O;fzpo2QE=egVCDFfW9xE+i7YupA6k$|1vkEVWBp;sfQSJ>jYQ=!wHLBaY2 zZUk)uR?l9eB~6)WBp2MEirotGL5F-cp&!n(&CtJ&op=uF5Z7{mx2}4>Lh*o<-T>HZ zDpP6HHTRt|<3xF^y*nlI7&mHcwAinmcx68>#GT59PJht!X2E6!>~#&fPGtA9qLGY4Y~+pFXsOve}e1lJw7_|UHw0mk-d3dd|9M<<&{@jCQO)cHhezg zg;xOhNcd?Ks60_x6}ML0DqgCS?dWYj@?22wUDLPEy!P5_tz*ZIorm6@$44Cd9pYLF z@X)m2(YVuytKS)O9v_{qpfoB@S|imv^5dkd%?sWwepX?1JXG7KMfq2Gu}`0eWpS2UZ% z&!z7{Fxk@}_z4;<`Q{*}J&lwWlC)JeXP&BtwEW#3OI;a{gVAIwNeS6sM^D!_AdIsQ&2+=9bCd8TO|9TvGI z;m(A1hPK75<94(j6&6aW_&U8@!o+T0g_dD|yX(RQcBAMFXdCZl7$ukr8k3;_@p+J7 zG*Y{abV|4ez+N}PPK4ADZBN{GLDlu_CG!~X+6AS#el<1~zj)`l8c(fr9YxsByS6UG zmvHpG*>uz$AcdmE}6HJ zCr{S(8QL6j98_?Qo`C;G$j=i$ZhG(9Ca=pOEnoa;PDVbK_d;F_#J68M!i9}8Paqe>i$IO zZ;F=pNY4ayJ~kmO+u}}jYe#5H>^4Fz?v!Zl>POfg2n|{&2_*%SaK(y6m(jJkvxoTl z`wgT>FcFEs>~1_iPA<7ZNvevcFQDu+pQo2S`rB75U#x2s%A%{QO9g2$FY*-;dGTszXXl^` z7rZpZWO<6Ps@IM{^?Jg5OP*vwI%L17DEy!@H#9WdN1@Xih}LWFRbliVRRr#IDCYfC zMBS;Rb*AFuUMd3jIYw9N)z5_2rBJYNTM2|IdKLHjMrIcNwGbYhdx$FmhU z{kZKWUh0IL4DAK4sAoRPO%P{Dca06Yy%7{X^eA*NX_^i1ze1799_~as?n;}QG?n{R z)X3LbRD;^>vN&n<#xq~)UUS!~T&`WhNr$}Zx^*j@cy4#(d3w=S{BNAl>Qf=c;%1Xw zcQ#v|^$pWLV;hrb3_7!eM$cI8Qh&wabnTa_4UO3zN= zq1xwpvxru7uajS2+HZOx3|@xhn6@2DwUrx1bH$MgcscNbl_}wQ&mJm)UE3K9h^L0$ z;SASZEd3gbTEfSzdQ6&H_yBtKNTv7Z*EJ2K`S=%5wZ^1fcbY;gDG+M`{B#rMnC9l@ zec*Qxq+Nbmzwk#6TJTrp&=EWOHtGS?l~DM|n*w-g(RAMK_|=+~dhBX6bcBzlv#_$$ zUJ6IkP!`y0>ZW5cv<+@a$3OR`N(;FM}#g7b-0p$?QfxPe)aL=}bhu z7x}GPXYj9jrgcoMQ@$Tn(}Nl@sl4eKR#rghWDtEb^LLMTzjuQ><)6MsvUL}zVV01r zx$eTF1)8YxkAH2E*Jx5@$uEnl2dZbP2Xh#0-P+jLI3G7P*Mn87R*f7sY}laVTn)ri z?@McSd%=HytW>`=a`MZ7@>Ct&N3gqzy7)kQd%NmaT?Azq#WJJ-lyYaE=HX{`IJq+s zH%?Q+y>8u3<!(r^>(|P3|d>wm_2qko1A=-89i%nU3B6) z8UT70ziM8(@V92spRYG-=DkQb`guZ#z$JWqVPx$r6$&KZPAbOF9KUMGuRZG+5kVm( z%ZwJuHK(rfpoU6~WLaTQFA$~*kQyyDQhIOtMrf$+4thgC+9WWvCZqKhRXLrMp-cOQ zbaRduuBx?N=OH{bvdY`KH$t_7cxer=W$oIv>9)2u34k@FI$P@##KEqeq1p}_`J_f% z?`a69iiQ@X#g+l`*_MIU)>iE%T`%=ZjY>uAJ$(3xj-Jd7j+5BCEt#^TCVA3m$%=4K zFl~;y34%!`p9G~~T2EJCwkmF0r%W;94?4h%+V$P0b+b)P^W@1UJ&Fz+g0BDwG;L_; zLJ+N6@UmI+^wVbPop+gK_sli9Ubj=EFw{KyLdG2hxgnMnOfp+{R&(Q~tCt);%k34$ zh!G=3j5iQ&>s_DV=-xuYdPs)T{mKEdSM3a$-3 z9pj`^Cc)?_+1O|r#*8s3Mpi<0-8$2~V!6q7cA0!OV{(~{$!FAIb9wmueU83h@<&Wo z=zu=q#B-j>O<*?WNrK(?sMlVrxHBh4j2JOutRJ}2Ap$Xq7#tB4UJMvNFkhN5}1^0;Bm%KJtp6UXI3A7$B=9_Xa*LSf+x0Z%a4r>+a% zUU2ncq2Zd{(T?n0a`nF3KD)3`3iA;BCrY5UgZuFlq{n`FgGn443#Aw_V#L_6P}A;% zr@PlZvuo?{d7Zi3ezfjQzEqo*NZNx@{l-5mECk)Fq?JLL<;J%!MzQ}w^zjcP>{fca z6c4!qtdFO^7UuHFFK$fF?qQuk^1oLRZEJmT8I%N zMvNF60Q_M@&G_H;vAZpGa@XWde)9e)ozLAT2*S_^M(5CN)YB7bc;@@JygY_d%Aq(s zId<*b5tC0s-bp;w;G{o#*y=@(dR8%F#E21N14FGNrT|y2S^CcjPHK;aoTFo1d>PUo zSoS&zsBb+;@C8OO`LKG=!afU0C*Q62xB#wQUs&=67}#4uQ_5cm z?oPbowJ2v%Ln3*4=Jl~>9MbdRpifeW5hF&77(=#Wc*C?9F=E7s@n(Q+$?J_vrcQ0@T$eu_ z0d;aNpWhylq1!O*hpw&JtQntmPyPu9?u(vsaPs+Jq$S0=4@oENI*gNiq%oQJ@sw4g zZ{OBD^`CH4u&*!rz_vCViB3ecvOPbnpSu+L!a`el+ zYj@0<+-~`t*{3<1ojE$&+gfQ`pf39B2Pg4*BH=uc%qQj~o#cbfBhnAgnm=E+sK$s9 zBSwt30M?se3IlQDJh}DO=@(abZe`YXZ<{sw%}p*lDd#vN8CB`nczuzpYn8eXPpgdM zEJPqZ+uV?Ra^unM&u#P6Q@!4ZDMpMKF=E6RI!It$V`eAwvu7u*`UVNk7%^hRh!G=3 gj2JOu!~n+pKfy`Wkd@B$S^xk507*qoM6N<$f`>{1_W%F@ literal 32015 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 BaE<@~ diff --git a/README.md b/README.md index 32e2c8a..e4e2c43 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,256 @@ -# paserver-docker +# RAD Studio PAServer Docker Embarcadero RAD Studio Docker script for RAD Studio Linux deployment via PAServer +Embarcadero RAD Studio + +Welcome to the guide for deploying RAD Studio applications on Linux using Docker and PAServer. This repository offers a Docker script designed to simplify the setup and management of your development environment, allowing RAD Studio developers to deploy and test their applications in a Linux environment. -- **Container available on [Docker Hub](https://hub.docker.com/r/radstudio/paserver)** -- [PAServer Documentation](http://docwiki.embarcadero.com/RADStudio/en/PAServer,_the_Platform_Assistant_Server_Application) -- [More information on RAD Studio](https://www.embarcadero.com/products/rad-studio) -- Other containers: [InterBase](https://github.com/Embarcadero/InterBase-Docker) only, [RAD Server](https://github.com/Embarcadero/pa-radserver-docker), and [RAD Server with InterBase](https://github.com/Embarcadero/pa-radserver-ib-docker) +- **Container available on [Docker Hub][dockerhub-paserver]** +- [PAServer Documentation][paserver-docs] +- [More information on RAD Studio][radstudio] +- Other containers: [InterBase][github-interbase-docker] only, [RAD Server][github-radserver-docker], and [RAD Server with InterBase][github-radserver-interbase-docker] The image defaults to running **PAServer** on port `64211` with the _password_ `securepass` -The 10.x images use Ubuntu 18.04.6 LTS (Bionic Beaver) while the 11.x images use Ubuntu 22.04.1 LTS (Jammy Jellyfish) +The 10.x images use Ubuntu 18.04.6 LTS (Bionic Beaver) while the +11.x images use Ubuntu 22.04.1 LTS (Jammy Jellyfish) + +## 🚀 How to Use [`run.sh`] Script + +The [`run.sh`] script is your go-to automation tool for setting up and deploying the PAServer application with ease and flexibility. Below are the instructions to utilize this script effectively. + +### 📋 Prerequisites + +Ensure Docker is installed on your system as this script uses Docker for running the PAServer application. + +### 🌟 Features + +- **Customizable Name**: Assign a unique name to your PAServer container. +- **Bind Path**: Designate a custom path for volume mapping. +- **Detach Mode**: Opt for running your container in the background. +- **Port Configuration**: Select the port where PAServer runs. +- **Production Mode**: Activate production mode for your deployment. +- **Version Control**: Choose the specific PAServer version for deployment. +- **Password Protection**: Secure your PAServer with a custom password. + +### 🛠️ Usage -## Instructions +Navigate to the directory containing [`run.sh`] in your terminal. Execute the script with your preferred options: -If you want to modify or build from GitHub without using [Docker Hub](https://hub.docker.com/r/radstudio/paserver), you can build the Dockerfile with the `build.sh` script. **Note:** The Dockerfile requires the `paserver_docker.sh` script in the same directory +```bash +./run.sh [OPTIONS] +``` + +#### 📌 Options + +- `--name` or `-n`: Container's name (e.g., `--name=myPAServer`). +- `--path` or `-pa`: Bind path for volume mapping (e.g., `--path=/my/custom/path`). +- `--detach` or `-d`: Run container in detach mode (background). +- `--port` or `-p`: Port for PAServer (e.g., `--port=64211`). +- `--production` or `-pr`: Enable production mode (`true`). +- `--version` or `-v`: PAServer version (e.g., `--version=latest`). +- `--password` or `-pw`: Set a password for PAServer (e.g., `--password=securepass`). + +### 🌈 Examples + +Run PAServer in production mode on port 65000 with a custom name and password: +```bash +./run.sh --name=myPAServer --port=65000 --production --password=mysupersecurepassword ``` -./build.sh + +Run PAServer in detach mode with a specific version, bind path, and password: + +```bash +./run.sh --detach --version=12.1 --path=/my/custom/path --password=mysupersecurepassword ``` -To pull and run the [Docker Hub](https://hub.docker.com/r/radstudio/paserver) version of PAServer Docker for a debug/non-production environment use the `pull-run.sh` script +### 📝 Note + +Make sure you have the necessary permissions to execute `run.sh`. Use `chmod +x run.sh` to make it executable if needed. + +## 🐳 Using `docker run` Directly +For users who prefer a more hands-on approach or wish to customize their deployment further, you can directly use the `docker run` command to start your PAServer container. This method provides flexibility and allows you to manually specify each option. + +### 🛠️ Command Structure + +The basic structure of the command to run the PAServer Docker container is as follows: + +```bash +docker run [OPTIONS] radstudio/paserver:[VERSION] ``` -./pull-run.sh + +### 📌 Options + +- `-e PA_SERVER_PASSWORD=[PASSWORD]`: Sets the password for the PAServer. Replace `[PASSWORD]` with your desired password. +- `--name [NAME]`: Assigns a custom name to your Docker container. Replace `[NAME]` with your preferred container name. +- `-p [PORT]:64211`: Maps a custom port on your host to the PAServer's default port (64211). Replace `[PORT]` with the port number you wish to use. +- `[DETACH_ARG]`: Use `-d` to run the container in detached mode (in the background). +- `[BIND_PATH_ARG]`: Use `-v [HOST_PATH]:[CONTAINER_PATH]` to bind a volume for persistent data or configurations. Replace `[HOST_PATH]` and `[CONTAINER_PATH]` with your specific paths. + +### 🌈 Examples + +To run the PAServer in a Docker container named `myPAServer`, listening on port 65000, with a password of `mysupersecurepassword`, and running in detached mode, you would use the following command: + +```bash +docker run -d \ + -e PA_SERVER_PASSWORD=mysupersecurepassword \ + --name myPAServer \ + -p 65000:64211 radstudio/paserver:latest ``` -To pull and run the Docker Hub version of PAServer Docker for a non-debug/production environment use the `pull-run-production.sh` script +If you wish to bind a volume for persistent data, you can add the `-v` option: +```bash +docker run -d \ + -e PA_SERVER_PASSWORD=securepass \ + -v /path/on/host:/root/PAServer/scratch-dir \ + --name myPAServer \ + -p 65000:64211 radstudio/paserver:latest ``` -./pull-run-production.sh securepass123 + +#### Using Docker Compose + +Docker Compose allows you to define and run multi-container Docker applications. Here is an example `docker-compose.yml` file that demonstrates how to use a Docker image as part of a service, utilizing environment variables for configuration. + +```yaml +version: '3.8' +services: + myPAServer: + image: radstudio/paserver:latest + container_name: myPAServer + environment: + - PA_SERVER_PASSWORD=${PA_SERVER_PASSWORD} # Environment variable for the server password + ports: + - '${HOST_PORT}:64211' # Environment variable for the host port + volumes: + - ${HOST_PATH}:/root/PAServer/scratch-dir # Environment variable for the host path + restart: unless-stopped ``` -To run the Docker Hub version of PAServer Docker for a debug/non-production environment use the `run.sh` script +This configuration defines a single service called `myPAServer`. It uses the Docker image `radstudio/paserver:latest`. The service configuration includes mapping a port from the host to the container, setting an environment variable for the server password, and mounting a volume from the host to the container. These settings are customizable through environment variables defined in a `.env` file located in the same directory as your `docker-compose.yml`. ``` -./run.sh +# .env file +PA_SERVER_PASSWORD=securepass +HOST_PORT=65000 +HOST_PATH=/path/on/host ``` -To run the Docker Hub version of paserver docker for a non-debug/production environment use the `run-production.sh` script +To start your application, execute the following command in the directory containing your `docker-compose.yml`: +```bash +docker-compose up ``` -./run-production.sh securepass123 + +This command initiates the Docker Compose process, which reads the `docker-compose.yml` file and the `.env` file, applying the configurations to start your service as defined. + +This will pull the necessary image (if it's not already locally available), create the defined volumes, set the environment variables, and start your application on the specified ports. + +#### 📝 Note + +Ensure you replace `/path/on/host` with the actual path you wish to use for volume binding. The `latest` tag can be replaced with any specific version of the PAServer you wish to deploy. + +## 🛠️ Customizing Your Docker Image + +This guide will help you customize the PAServer image to suit your specific needs, such as adding additional files or folders, installing extra packages, and making other modifications. + +### 📁 Adding Files or Folders + +To add files or folders to your Docker image, use the `COPY` or `ADD` instruction in your Dockerfile. `COPY` is preferred for copying local files, while `ADD` can handle remote URLs and tar extraction. + +#### Example: Adding a Configuration File + +```dockerfile +COPY ./myconfig.conf /etc/myapp/myconfig.conf +``` + +This command copies `myconfig.conf` from your project directory to `/etc/myapp/myconfig.conf` inside the Docker image. + +### 📦 Installing Extra Packages + +To install additional packages, you can modify the `RUN` command that installs packages. It's best to combine package installation commands into a single `RUN` instruction to reduce the number of layers in your Docker image. + +#### Example: Installing Git and Cmake + +```dockerfile +RUN apt-get update && apt-get install -y \ + git \ + cmake \ + && rm -rf /var/lib/apt/lists/* ``` ---- +Based on each project, specific libraries may be necessary. This command updates the package lists, installs _Git_ and _Cmake_, and cleans up afterward to keep the image size down. -This software is Copyright © 2024 by [Embarcadero Technologies, Inc.](https://www.embarcadero.com/) +To avoid extra layering in the final Docker image, it's good practice to modify the existing `RUN apt-get update` command to include your required libraries. -_You may only use this software if you are an authorized licensee of an Embarcadero developer tools product. See the latest [software license agreement](https://www.embarcadero.com/products/rad-studio/rad-studio-eula) for any updates._ +### 🛠️ Customizing Installation Commands + +You can customize the Dockerfile to change environment variables, download different versions of software, or modify the installation process. + +#### Example: Setting a Custom Environment Variable + +```dockerfile +ENV MY_CUSTOM_VAR=myvalue +``` + +This sets an environment variable `MY_CUSTOM_VAR` that can be used by your application. + +### 🏗️ Building Your Custom Image + +After customizing your Dockerfile, you can build your Docker image using the `docker build` command. + +```bash +docker build -t my-custom-paserver:latest . +``` + +This command builds a Docker image named `my-custom-paserver` with the `latest` tag, using the Dockerfile in the current directory. + +### 🔑 Using Build Arguments + +For values that might change between builds (like passwords or version numbers), you can use `ARG` instructions in your Dockerfile and pass values with the `--build-arg` option during the build. + +#### Example: Specifying a Custom Password + +```dockerfile +ARG password=securepass +``` + +Build with a custom password: + +```bash +docker build --build-arg password=mypassword -t my-custom-paserver:latest . +``` + +### 💡 Tips + +- This repository provides a [`build.sh`] script that can be used as a template for simplifying custom builds. +- Currently, this image is only compatible with `linux/amd64`. To avoid potential problems in arm setups, build the image with the arg `--platform linux/amd64` + +### 🛡️ Best Practices + +- **Minimize Layers**: Combine related commands into single `RUN` instructions where possible. +- **Clean Up**: Remove unnecessary files and packages to keep the image size down. +- **Use `.dockerignore`**: Add a `.dockerignore` file to your project to avoid copying unnecessary files into your Docker image. +- **Secure Secrets**: Avoid hardcoding sensitive information in your Dockerfile. Use build arguments for build-time secrets and environment variables or Docker secrets for runtime secrets. + +## License and Copyright + +This software is Copyright © 2024 by [Embarcadero Technologies, Inc.][embarcacero] + +_You may only use this software if you are an authorized licensee of an Embarcadero developer tools product. See the latest [software license agreement][embarcadero-license] for any updates._ ![Embarcadero(Black-100px)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-black.png#gh-light-mode-only) ![Embarcadero(White-100px)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-white.png#gh-dark-mode-only) +![Embarcadero(Black)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-black.png#gh-light-mode-only) +![Embarcadero(White)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-white.png#gh-dark-mode-only) + +[dockerhub-paserver]: https://hub.docker.com/r/radstudio/paserver +[radstudio]: https://www.embarcadero.com/products/rad-studio +[paserver-docs]: http://docwiki.embarcadero.com/RADStudio/en/PAServer,_the_Platform_Assistant_Server_Application +[github-interbase-docker]: https://github.com/Embarcadero/InterBase-Docker +[github-radserver-docker]: https://github.com/Embarcadero/pa-radserver-docker +[github-radserver-interbase-docker]: https://github.com/Embarcadero/pa-radserver-ib-docker +[embarcadero]: https://www.embarcadero.com/ +[embarcadero-license]: https://www.embarcadero.com/products/rad-studio/rad-studio-eula diff --git a/pull-run-production.sh b/pull-run-production.sh deleted file mode 100644 index 72af67d..0000000 --- a/pull-run-production.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -if [ "$1" = '' ]; then - echo "RAD Server Docker paserver Pull-Run Script"; - echo "Required arguments: PAServer password"; - echo "ex: pull-run-production.sh securepass"; -else - docker pull radstudio/paserver:latest - - bash ./run-production.sh $1 -fi diff --git a/pull-run.sh b/pull-run.sh deleted file mode 100644 index 1884826..0000000 --- a/pull-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -docker pull radstudio/paserver:latest - -bash ./run.sh diff --git a/run-production.sh b/run-production.sh deleted file mode 100755 index 9efe4bf..0000000 --- a/run-production.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -if [ "$1" = '' ]; then - echo "RAD Server Docker paserver Run Script"; - echo "Required arguments: PAServer password"; - echo "ex: run-production.sh securepass"; -else - docker run --platform linux/amd64 \ - -d -t -e PA_SERVER_PASSWORD=$1 \ - -p 64211:64211 \ - --name paserver \ - radstudio/paserver:latest -fi diff --git a/run.sh b/run.sh index 4b4519d..ef226e9 100755 --- a/run.sh +++ b/run.sh @@ -1,9 +1,91 @@ #!/usr/bin/env bash -# path binding example: --mount type=bind,source=/home/paserver,target=/root/PAServer/scratch-dir -echo "PAServer Password: securepass" -docker run --cap-add=SYS_PTRACE \ - --security-opt seccomp=unconfined \ - -it -e PA_SERVER_PASSWORD=securepass \ - --name paserver \ - -p 64211:64211 radstudio/paserver:latest +NAME="paserver" +BIND_PATH="" +VERSION="latest" +PRODUCTION=false +PORT="64211" +DETACH=false +PASSWORD="securepass" + +while [ $# -gt 0 ]; do + case "$1" in + --name|-n) + if [[ "$1" != *=* ]]; then shift; fi # Value is next arg if no `=` + NAME="${1#*=}" + ;; + --path|-pa) + if [[ "$1" != *=* ]]; then shift; fi + BIND_PATH="${1#*=}" + ;; + --detach|-d) + # if [[ "$1" != *=* ]]; then shift; fi + DETACH=true + ;; + --port|-p) + if [[ "$1" != *=* ]]; then shift; fi + PORT="${1#*=}" + ;; + --production|-pr) + # if [[ "$1" != *=* ]]; then shift; fi + PRODUCTION=true + ;; + --version|-v) + if [[ "$1" != *=* ]]; then shift; fi + VERSION="${1#*=}" + ;; + --password|-pw) + if [[ "$1" != *=* ]]; then shift; fi + PASSWORD="${1#*=}" + ;; + --help|-h) + printf "Usage: run.sh [OPTIONS]\n\n" + printf "Example 1: run.sh --path /home/user/ --detach --port 64211 --production --password securepass --name my-paserver --version latest\n\n" + printf "Example 2: run.sh -pa /home/user/ -d -p 64211 -pr -pw securepass -n my-paserver -v latest\n\n" + printf "Options:\n" + printf " --name, -n NAME\tSpecify the name of the container - default: ${NAME}\n" + printf " --detach, -d\t\tRun in detached mode - default: ${DETACH}\n" + printf " --path, -pa\t\tBinds the container to a local folder - default: no bind\n" + printf " --port, -p PORT\tSpecify the port to use be used by PAServer - default: ${PORT}\n" + printf " --production, -pr\tEnable production mode - default: ${PRODUCTION}\n" + printf " --version, -v VERSION\tSpecify the PAServer tag to be used as image - default: ${VERSION}\n" + printf " --password, -pw PWD\tSet the password - default: ${PASSWORD}\n" + printf " --help, -h\t\tDisplay this help and exit\n" + exit 0 + ;; + *) + >&2 printf "Error: Invalid argument\n" + exit 1 + ;; + esac + shift +done + +if [ "$BIND_PATH" != "" ]; then + BIND_PATH_ARG="--mount type=bind,source=$BIND_PATH,target=/root/PAServer/scratch-dir" +fi + +if [ "$DETACH" = true ]; then + DETACH_ARG="-d -t" +else + DETACH_ARG="-it" +fi + +if [ "$PRODUCTION" = false ]; then + printf "Password: $PASSWORD\n" + printf "Port: $PORT\n" + printf "Detach: $DETACH\n" + printf "Production: $PRODUCTION\n" + printf "Path: $BIND_PATH\n" + printf "Name: $NAME\n" + printf "Version: $VERSION\n" + + DEBUG_ARG="--cap-add=SYS_PTRACE --security-opt seccomp=unconfined" +fi + +docker run $DEBUG_ARG \ + $DETACH_ARG \ + -e PA_SERVER_PASSWORD=$PASSWORD \ + $BIND_PATH_ARG \ + --name $NAME \ + -p $PORT:64211 radstudio/paserver:$VERSION \ No newline at end of file From 647c591f62c0c7a31e98201cb13582e4bd91820e Mon Sep 17 00:00:00 2001 From: azapater Date: Mon, 22 Jul 2024 13:50:19 +0200 Subject: [PATCH 06/10] chore: Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index e4e2c43..72fecc4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ Embarcadero RAD Studio Docker script for RAD Studio Linux deployment via PAServer -Embarcadero RAD Studio Welcome to the guide for deploying RAD Studio applications on Linux using Docker and PAServer. This repository offers a Docker script designed to simplify the setup and management of your development environment, allowing RAD Studio developers to deploy and test their applications in a Linux environment. @@ -241,8 +240,6 @@ This software is Copyright © 2024 by [Embarcadero Technologies, Inc.][embar _You may only use this software if you are an authorized licensee of an Embarcadero developer tools product. See the latest [software license agreement][embarcadero-license] for any updates._ -![Embarcadero(Black-100px)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-black.png#gh-light-mode-only) -![Embarcadero(White-100px)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-white.png#gh-dark-mode-only) ![Embarcadero(Black)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-black.png#gh-light-mode-only) ![Embarcadero(White)](https://raw.githubusercontent.com/azapater/paserver-docker/main/.github/images/embt-logo-white.png#gh-dark-mode-only) From 87890e7ccbbfad5cdc637af2cdea0b3ace918042 Mon Sep 17 00:00:00 2001 From: azapater Date: Mon, 22 Jul 2024 13:59:11 +0200 Subject: [PATCH 07/10] minor README fix --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 72fecc4..97d577a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # RAD Studio PAServer Docker Embarcadero RAD Studio -Docker script for RAD Studio Linux deployment via PAServer Welcome to the guide for deploying RAD Studio applications on Linux using Docker and PAServer. This repository offers a Docker script designed to simplify the setup and management of your development environment, allowing RAD Studio developers to deploy and test their applications in a Linux environment. From e4b882aa84806ab45a220c2c826bafac713e0a55 Mon Sep 17 00:00:00 2001 From: azapater Date: Tue, 23 Jul 2024 15:16:35 +0200 Subject: [PATCH 08/10] changes: - added `--help` option to the list - fixed embarcadero link --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 97d577a..329b09e 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Navigate to the directory containing [`run.sh`] in your terminal. Execute the sc - `--production` or `-pr`: Enable production mode (`true`). - `--version` or `-v`: PAServer version (e.g., `--version=latest`). - `--password` or `-pw`: Set a password for PAServer (e.g., `--password=securepass`). +- `--help` or `-h`: Shows the help of the script. ### 🌈 Examples @@ -235,7 +236,7 @@ docker build --build-arg password=mypassword -t my-custom-paserver:latest . ## License and Copyright -This software is Copyright © 2024 by [Embarcadero Technologies, Inc.][embarcacero] +This software is Copyright © 2024 by [Embarcadero Technologies, Inc.][embarcadero] _You may only use this software if you are an authorized licensee of an Embarcadero developer tools product. See the latest [software license agreement][embarcadero-license] for any updates._ From b76e23fa1f255e378f911c09c39d58377e8ea37d Mon Sep 17 00:00:00 2001 From: azapater Date: Tue, 23 Jul 2024 15:18:12 +0200 Subject: [PATCH 09/10] changes: - refactor script for better maintenance - tagged images separately --- build.sh | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 96cc452..d488c81 100755 --- a/build.sh +++ b/build.sh @@ -1,8 +1,24 @@ #!/usr/bin/env bash +# Exit script on error +set -e + +# Variables for image name and tags +IMAGE_NAME="radstudio/paserver" +TAG_LATEST="latest" +TAG_VERSION="athens" +TAG_NUMERIC="12.1.1" + +# Build the Docker image with the first tag docker build . \ --build-arg password=securepass \ --platform linux/amd64 \ - --tag=radstudio/paserver:latest \ - --tag=radstudio/paserver:athens \ - --tag=radstudio/paserver:12.1.1 \ + --pull \ + -t ${IMAGE_NAME}:${TAG_LATEST} \ + +# Tag the built image with additional version tags +docker tag "${IMAGE_NAME}:${TAG_LATEST}" "${IMAGE_NAME}:${TAG_VERSION}" +docker tag "${IMAGE_NAME}:${TAG_LATEST}" "${IMAGE_NAME}:${TAG_NUMERIC}" + +# Echo a success message +echo "Docker image ${IMAGE_NAME} tagged with ${TAG_LATEST}, ${TAG_VERSION}, and ${TAG_NUMERIC}" \ No newline at end of file From cbb8b46a06ff7e104aa7af49bcee06e5a80762fd Mon Sep 17 00:00:00 2001 From: azapater Date: Tue, 23 Jul 2024 15:19:36 +0200 Subject: [PATCH 10/10] refactor to a multi-stage build for better caching and layering --- Dockerfile | 61 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/Dockerfile b/Dockerfile index d9cc5f8..96a64bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:jammy -# jammy is the code name of 22.04 LTS +# Build Stage +FROM ubuntu:jammy as builder ARG password=securepass @@ -7,40 +7,51 @@ ENV PA_SERVER_PASSWORD=$password ENV PA_SERVER_URL=https://altd.embarcadero.com/releases/studio/23.0/121/1211/LinuxPAServer23.0.tar.gz ENV PA_SERVER_VERSION=23.0 -### Copy the PAServer runner script -COPY paserver_docker.sh ./paserver_docker.sh +# Install build dependencies +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yy --no-install-recommends \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Download and extract PAServer +RUN curl -L "${PA_SERVER_URL}" -k -o ./paserver.tar.gz \ + && tar xvzf paserver.tar.gz \ + && mkdir /paserver \ + && mv PAServer-${PA_SERVER_VERSION}/* /paserver \ + && rm -rf PAServer-${PA_SERVER_VERSION} paserver.tar.gz -### Run all commands in a single layer - this might affect the final image size -RUN apt-get update && apt-get -y autoremove --purge && apt-get -y clean && \ - DEBIAN_FRONTEND=noninteractive apt-get -yy install \ +# Runtime Stage +FROM ubuntu:jammy + +# Install runtime dependencies +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yy --no-install-recommends \ joe \ - p7zip-full \ curl \ - openssh-server \ build-essential \ + p7zip-full \ + openssh-server \ zlib1g-dev \ libcurl4-gnutls-dev \ libncurses5 \ libpython3.10 \ - && rm -rf /var/lib/apt/lists/* \ - ### Download PAServer - && wget -O ./paserver.tar.gz "${PA_SERVER_URL}" \ - ### Extract PAServer to the right folder and remove the compressed file - && tar xvzf paserver.tar.gz \ - && mv PAServer-${PA_SERVER_VERSION}/* . \ - && rm PAServer-${PA_SERVER_VERSION} -r \ - && rm paserver.tar.gz \ - ### Creates the symlink to the Python interpreter in the PAServer required location - && mv lldb/lib/libpython3.so lldb/lib/libpython3.so_ \ + && rm -rf /var/lib/apt/lists/* + +# Copy PAServer and the runner script from the builder stage +COPY --from=builder /paserver /paserver +COPY paserver_docker.sh /paserver/paserver_docker.sh + +# Set work directory +WORKDIR /paserver + +# Creates the symlink to the Python interpreter in the PAServer required location and grant execution permission to the runner script +RUN mv lldb/lib/libpython3.so lldb/lib/libpython3.so_ \ && ln -s /lib/x86_64-linux-gnu/libpython3.10.so.1 lldb/lib/libpython3.so \ - ### Add executes permission to run paserver_docker.sh later on - && chmod +x paserver_docker.sh + && chmod +x ./paserver_docker.sh -### Expose PAServer`s default port +# Expose PAServer's default port EXPOSE 64211 -### Get ready to bind to PAServer`s default scratch dir +# Get ready to bind to PAServer's default scratch dir VOLUME ["/root/PAServer/scratch-dir"] -### Executes PAServer runner script -ENTRYPOINT ["./paserver_docker.sh"] +# Executes PAServer runner script +ENTRYPOINT ["./paserver_docker.sh"] \ No newline at end of file