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.
109 lines
3.0 KiB
109 lines
3.0 KiB
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"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|