jam-cloud/lambda/jamtrack-importer/Dockerfile.sam

53 lines
1.6 KiB
Docker
Raw Normal View History

FROM ruby:3.3
# Install the runtime interface client for Ruby
RUN gem install aws_lambda_ric
# Add the runtime interface client to the PATH
ENV PATH="/usr/local/bundle/bin:/opt/bin:${PATH}"
# Create a directory for the Lambda function
ENV LAMBDA_TASK_ROOT=/var/task
RUN mkdir -p ${LAMBDA_TASK_ROOT}
WORKDIR ${LAMBDA_TASK_ROOT}
ENV ARTIFACT_DIR=/opt
ENV FUNCTION_DIR=${LAMBDA_TASK_ROOT}
# Install dependencies
RUN apt update -y && apt install -y postgresql-common unzip vorbis-tools pip sox python-is-python3
# Copy custom libraries
COPY ./assets/bin/ffmpeg ${ARTIFACT_DIR}/bin/
RUN chmod a+x /opt/bin/ffmpeg
RUN git clone http://www.pogo.org.uk/~mark/bpm-tools.git && cd bpm-tools && make && cp bpm /opt/bin/
# Copy just enough of the shared gem to satisfy bundle install when it runs.
# This way we can make code changes easily in `shared/lib/*`, and not create
# full docker rebuilds for speed
RUN mkdir -p ${LAMBDA_TASK_ROOT}/shared
COPY shared/shared.gemspec ${LAMBDA_TASK_ROOT}/shared/
COPY lambdas ${LAMBDA_TASK_ROOT}/lambdas
RUN ls -laR ${LAMBDA_TASK_ROOT}
WORKDIR ${LAMBDA_TASK_ROOT}/lambdas/unzipper
# Copy Gemfile and Gemfile.lock
RUN ls -la
RUN gem install bundler && \
bundle config set --local path "/vendor/bundle" && \
bundle install
# Copy application code
COPY shared ${LAMBDA_TASK_ROOT}/shared
#RUN bundle config set --local deployment 'true' && bundle install
WORKDIR ${LAMBDA_TASK_ROOT}/lambdas/unzipper
# Set runtime interface client as default command for the container runtime
ENTRYPOINT [ "aws_lambda_ric" ]
# Set the Lambda handler
CMD ["app.lambda_handler"]