Ctrl K
ComunidadGuías…

docker/Dockerfile

Rama develop · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
FROM ruby:3.4.5-bullseye AS ruby
FROM node:12.18.3-slim AS node

FROM ruby AS build

# Set all encoding to UTF-8
ENV RUBYOPT="-KU -E utf-8:utf-8"

# Install additional dependencies not present in the base image
RUN apt-get update && \
    apt-get install -y bison \
    build-essential \
    libxslt-dev \
    default-mysql-server

# Add core code to container
WORKDIR /code
COPY . /code

RUN gem install bundler:2.7.2
RUN bundle install

# cherry pick only what we really need to run Node.js
COPY --from=node /usr/local/bin/node /usr/local/bin
COPY --from=node /usr/local/include/node /usr/local/include
COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=node /usr/local/share/doc/node /usr/local/share/doc
COPY --from=node /usr/local/share/man/man1/node.1 /usr/local/share/man/man1
COPY --from=node /usr/local/share/systemtap/tapset/node.stp /usr/local/share/systemtap/tapset
COPY --from=node /opt/yarn-v1.22.4 /opt/yarn-v1.22.4

# create symlinks needed to run Node.js & NPM
RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
RUN ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx
RUN ln -s /opt/yarn-v1.22.4/bin/yarn /usr/local/bin/yarn
RUN ln -s /opt/yarn-v1.22.4/bin/yarnpkg /usr/local/bin/yarnpkg
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

FROM build

# setup a dedicated user for Node.js
RUN groupadd --gid 1000 node 
RUN useradd --uid 1000 \
            --gid node \
            --shell /bin/bash \
            --create-home node

# setup Node.js environment
ENV NODEJS_HOME=/opt/node-v12.18.3-linux-x64/bin
ENV PATH=$NODEJS_HOME:$PATH

WORKDIR /code

EXPOSE 80 443 3000
ENTRYPOINT ["/bin/bash"]
CMD ["/code/docker/entrypoint.sh"]