speakeasy/Dockerfile
James Duarte a6ddf60311
add requirements.txt to the copy functions
was failing on docker image curation due to a missing requirements.txt file, which is now being pulled in.
2021-11-23 10:45:59 -05:00

45 lines
1.2 KiB
Docker

# Copyright (C) 2020 FireEye, Inc. All Rights Reserved.
FROM python:3.8-alpine as base
# Use this base to build and install everything (this will bloat the size of this build image)
FROM base as builder
RUN apk add --no-cache gcc python3-dev make bash postgresql-dev libc-dev linux-headers
RUN which python3.8
RUN ln -sf /usr/local/bin/python3.8 /usr/local/bin/python
ADD ./requirements.txt /
RUN python -m pip install --upgrade pip && python -m pip install -r requirements.txt
FROM base
COPY --from=builder /usr/local/lib/python3.8/site-packages/ /usr/local/lib/python3.8/site-packages/
# Create an app user so we don't run as root
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# make the sandbox directory
RUN mkdir /sandbox
# Create the home directory
ENV APP_HOME=/app
RUN mkdir ${APP_HOME}
WORKDIR ${APP_HOME}
COPY ./speakeasy/ ${APP_HOME}/speakeasy
COPY ./setup.py ${APP_HOME}
COPY ./requirements.txt ${APP_HOME}
COPY ./README.md ${APP_HOME}
COPY ./MANIFEST.in ${APP_HOME}
COPY ./examples/ ${APP_HOME}/examples
# Chown all the files to the app user
RUN chown -R appuser:appgroup ${APP_HOME}
RUN chown -R appuser:appgroup /sandbox
RUN python ./setup.py install
# Change to the app user
USER appuser
CMD /bin/sh