mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.0 KiB
110 lines
3.0 KiB
4 years ago
|
FROM alpine:latest
|
||
|
|
||
|
#ENV LD_LIBRARY_PATH=/lib
|
||
|
|
||
|
|
||
|
ENV PORT 8080
|
||
|
ENV NODE_ENV=dev
|
||
|
|
||
|
# the client version we will download from bumpx repo
|
||
|
ENV CLIENT_FILENAME instantclient-basic-linux.x64-12.1.0.1.0.zip
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
# Create and change to the app directory.
|
||
|
WORKDIR /usr/src/appTemp
|
||
|
|
||
|
# Copy application dependency manifests to the container image.
|
||
|
# A wildcard is used to ensure both package.json AND package-lock.json are copied.
|
||
|
# Copying this separately prevents re-running npm install on every code change.
|
||
|
COPY ./docker/main.js ./docker/main.js
|
||
|
COPY ./package*.json ./
|
||
|
|
||
|
|
||
|
COPY ./docker/start.sh /usr/src/appEntry/start.sh
|
||
|
|
||
|
RUN apk --update --no-cache add \
|
||
|
nodejs \
|
||
|
nodejs-npm \
|
||
|
tar
|
||
|
|
||
|
|
||
|
# Install production dependencies.
|
||
|
RUN npm install --cache=/usr/src/app/cache --production && rm -rf /usr/src/app/cache && rm -rf /root/.npm
|
||
|
|
||
|
RUN apk del nodejs-npm
|
||
|
|
||
|
|
||
|
#RUN zip ./ –r ../appEntry/mydir.zip
|
||
|
RUN tar -czf ../appEntry/app.tar.gz ./* ; rm -rf ./*
|
||
|
|
||
|
#
|
||
|
#RUN wget https://download.oracle.com/otn_software/linux/instantclient/193000/instantclient-basic-linux.x64-19.3.0.0.0dbru.zip && \
|
||
|
# unzip instantclient-basic-linux.x64-19.3.0.0.0dbru.zip && \
|
||
|
# cp -r instantclient_19_3/* /lib && \
|
||
|
# rm -rf instantclient-basic-linux.x64-19.3.0.0.0dbru.zip && \
|
||
|
# apk add libaio && \
|
||
|
# apk add --update libaio libnsl libc6-compat
|
||
|
|
||
|
|
||
|
|
||
|
#
|
||
|
## ln -s /lib/libnsl.so.2 /lib/libnsl.so.1 ;\
|
||
|
#
|
||
|
#RUN ln -s /lib64/* /lib ;\
|
||
|
# ln -s /lib/libnsl.so.2 /usr/lib/libnsl.so.1 ;\
|
||
|
# ln -s /lib/libc.so /lib/libresolv.so.2 ;\
|
||
|
# ln -s /usr/lib/libnsl.so.2 /usr/lib/libnsl.so.1
|
||
|
## ln -s /lib/libclntsh.so.12.1 /lib/libclntsh.so ;
|
||
|
|
||
|
|
||
|
#RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
|
||
|
#apk add --update libaio libnsl && \
|
||
|
#ln -s /usr/lib/libnsl.so.2 /lib/libnsl.so.1
|
||
|
|
||
|
# Bug fix for segfault ( Convert PT_GNU_STACK program header into PT_PAX_FLAGS )
|
||
|
#RUN apk --update --no-cache add paxctl \
|
||
|
# && paxctl -cm $(which node)
|
||
|
|
||
|
|
||
|
|
||
|
# work in this directory
|
||
|
WORKDIR /opt/oracle/lib
|
||
|
|
||
|
# take advantage of this repo to easily download the client (use it at your own risk)
|
||
|
ADD https://github.com/bumpx/oracle-instantclient/raw/master/${CLIENT_FILENAME} .
|
||
|
|
||
|
# we need libaio and libnsl, the latter is only available as package in the edge repository
|
||
|
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
|
||
|
apk add --update libaio libnsl && \
|
||
|
ln -s /usr/lib/libnsl.so.2 /usr/lib/libnsl.so.1
|
||
|
|
||
|
# unzip the necessary libraries, create the base symlink and remove the zip file
|
||
|
RUN LIBS="*/libociei.so */libons.so */libnnz12.so */libclntshcore.so.12.1 */libclntsh.so.12.1" && \
|
||
|
unzip ${CLIENT_FILENAME} ${LIBS} && \
|
||
|
for lib in ${LIBS}; do mv ${lib} /usr/lib; done && \
|
||
|
ln -s /usr/lib/libclntsh.so.12.1 /usr/lib/libclntsh.so && \
|
||
|
rm ${CLIENT_FILENAME}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
# Create and change to the app directory.
|
||
|
WORKDIR /usr/src/app
|
||
|
|
||
|
|
||
|
# Run the web service on container startup.
|
||
|
#CMD [ "node", "docker/index.js" ]
|
||
|
ENTRYPOINT ["/bin/sh", "/usr/src/appEntry/start.sh"]
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|