Skip to content

Commit dfa13ec

Browse files
committed
utils check php7.4
1 parent a364541 commit dfa13ec

2 files changed

Lines changed: 135 additions & 0 deletions

File tree

Dockerfile.74

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
FROM quay.io/keboola/aws-cli
2+
ARG AWS_SECRET_ACCESS_KEY
3+
ARG AWS_ACCESS_KEY_ID
4+
RUN /usr/bin/aws s3 cp s3://keboola-drivers/teradata/tdodbc1710-17.10.00.08-1.x86_64.deb /tmp/teradata/tdodbc.deb
5+
RUN /usr/bin/aws s3 cp s3://keboola-drivers/exasol/EXASOL_ODBC-7.1.10.tar.gz /tmp/exasol/odbc.tar.gz
6+
7+
FROM php:7.4-cli-buster
8+
9+
ARG COMPOSER_FLAGS="--prefer-dist --no-interaction"
10+
ARG DEBIAN_FRONTEND=noninteractive
11+
ENV COMPOSER_ALLOW_SUPERUSER 1
12+
ENV COMPOSER_PROCESS_TIMEOUT 3600
13+
14+
ARG SQLSRV_VERSION=5.9.0
15+
ARG SNOWFLAKE_ODBC_VERSION=2.21.1
16+
ARG SNOWFLAKE_GPG_KEY=EC218558EABB25A1
17+
18+
WORKDIR /code/
19+
20+
COPY docker/php-prod.ini /usr/local/etc/php/php.ini
21+
COPY docker/composer-install.sh /tmp/composer-install.sh
22+
23+
RUN apt-get update -q \
24+
&& apt-get install gnupg -y --no-install-recommends \
25+
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
26+
&& curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \
27+
&& apt-get update -q \
28+
&& ACCEPT_EULA=Y apt-get install -y --no-install-recommends\
29+
git \
30+
locales \
31+
unzip \
32+
unixodbc \
33+
unixodbc-dev \
34+
libpq-dev \
35+
gpg \
36+
debsig-verify \
37+
dirmngr \
38+
gpg-agent \
39+
msodbcsql17 \
40+
libonig-dev \
41+
libxml2-dev \
42+
&& rm -r /var/lib/apt/lists/* \
43+
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
44+
&& locale-gen \
45+
&& chmod +x /tmp/composer-install.sh \
46+
&& /tmp/composer-install.sh
47+
48+
ENV LANGUAGE=en_US.UTF-8
49+
ENV LANG=en_US.UTF-8
50+
ENV LC_ALL=en_US.UTF-8
51+
52+
# Snowflake ODBC
53+
# https://github.com/docker-library/php/issues/103#issuecomment-353674490
54+
RUN set -ex; \
55+
docker-php-source extract; \
56+
{ \
57+
echo '# https://github.com/docker-library/php/issues/103#issuecomment-353674490'; \
58+
echo 'AC_DEFUN([PHP_ALWAYS_SHARED],[])dnl'; \
59+
echo; \
60+
cat /usr/src/php/ext/odbc/config.m4; \
61+
} > temp.m4; \
62+
mv temp.m4 /usr/src/php/ext/odbc/config.m4; \
63+
docker-php-ext-configure odbc --with-unixODBC=shared,/usr; \
64+
docker-php-ext-install odbc; \
65+
docker-php-source delete
66+
67+
68+
69+
#Synapse ODBC
70+
RUN set -ex; \
71+
pecl install sqlsrv-$SQLSRV_VERSION pdo_sqlsrv-$SQLSRV_VERSION; \
72+
docker-php-ext-enable sqlsrv pdo_sqlsrv; \
73+
docker-php-source delete
74+
75+
## Snowflake
76+
COPY ./docker/snowflake/generic.pol /etc/debsig/policies/$SNOWFLAKE_GPG_KEY/generic.pol
77+
COPY ./docker/snowflake/simba.snowflake.ini /usr/lib/snowflake/odbc/lib/simba.snowflake.ini
78+
79+
RUN mkdir -p ~/.gnupg \
80+
&& chmod 700 ~/.gnupg \
81+
&& echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
82+
&& mkdir -p /usr/share/debsig/keyrings/$SNOWFLAKE_GPG_KEY \
83+
&& gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys $SNOWFLAKE_GPG_KEY \
84+
&& gpg --export $SNOWFLAKE_GPG_KEY > /usr/share/debsig/keyrings/$SNOWFLAKE_GPG_KEY/debsig.gpg \
85+
&& curl https://sfc-repo.snowflakecomputing.com/odbc/linux/$SNOWFLAKE_ODBC_VERSION/snowflake-odbc-$SNOWFLAKE_ODBC_VERSION.x86_64.deb --output /tmp/snowflake-odbc.deb \
86+
&& debsig-verify /tmp/snowflake-odbc.deb \
87+
&& gpg --batch --delete-key --yes $SNOWFLAKE_GPG_KEY \
88+
&& dpkg -i /tmp/snowflake-odbc.deb
89+
90+
# Teradata
91+
COPY --from=0 /tmp/teradata/tdodbc.deb /tmp/teradata/tdodbc.deb
92+
COPY docker/teradata/odbc.ini /tmp/teradata/odbc_td.ini
93+
COPY docker/teradata/odbcinst.ini /tmp/teradata/odbcinst_td.ini
94+
95+
RUN dpkg -i /tmp/teradata/tdodbc.deb \
96+
&& cat /tmp/teradata/odbc_td.ini >> /etc/odbc.ini \
97+
&& cat /tmp/teradata/odbcinst_td.ini >> /etc/odbcinst.ini \
98+
&& rm -r /tmp/teradata \
99+
&& docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \
100+
&& docker-php-ext-install pdo_odbc \
101+
&& docker-php-source delete
102+
103+
ENV ODBCHOME = /opt/teradata/client/ODBC_64/
104+
ENV ODBCINI = /opt/teradata/client/ODBC_64/odbc.ini
105+
ENV ODBCINST = /opt/teradata/client/ODBC_64/odbcinst.ini
106+
ENV LD_LIBRARY_PATH = /opt/teradata/client/ODBC_64/lib
107+
108+
#Exasol
109+
COPY --from=0 /tmp/exasol/odbc.tar.gz /tmp/exasol/odbc.tar.gz
110+
RUN set -ex; \
111+
mkdir -p /tmp/exasol/odbc /opt/exasol ;\
112+
tar -xzf /tmp/exasol/odbc.tar.gz -C /tmp/exasol/odbc --strip-components 1; \
113+
cp /tmp/exasol/odbc/lib/linux/x86_64/libexaodbc-uo2214lv2.so /opt/exasol/;\
114+
echo "\n[exasol]\nDriver=/opt/exasol/libexaodbc-uo2214lv2.so\n" >> /etc/odbcinst.ini;\
115+
rm -rf /tmp/exasol;
116+
117+
## Composer - deps always cached unless changed
118+
# First copy only composer files
119+
COPY composer.* /code/
120+
# Download dependencies, but don't run scripts or init autoloaders as the app is missing
121+
RUN composer install $COMPOSER_FLAGS --no-scripts --no-autoloader
122+
# copy rest of the app
123+
COPY . /code/
124+
# run normal composer - all deps are cached already
125+
RUN composer install $COMPOSER_FLAGS
126+
127+
CMD ["php", "/code/src/run.php"]

docker-compose.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,13 @@ services:
4545
privileged: true
4646
volumes:
4747
- exa-volume:/exa
48+
production74:
49+
<<: *prod
50+
build:
51+
context: .
52+
dockerfile: Dockerfile.74
53+
args:
54+
- AWS_ACCESS_KEY_ID
55+
- AWS_SECRET_ACCESS_KEY
4856
volumes:
4957
exa-volume:

0 commit comments

Comments
 (0)