0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-22 08:40:03 +01:00
posthog/.devcontainer/Dockerfile
Harry Waye aafad724ea
fix(codespaces): only pin versions to major versions (#8318)
* fix: don't pin docker.io, avoid package install issues

* pin to major versions
2022-01-28 11:23:17 +00:00

81 lines
3.0 KiB
Docker
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Defines the environment you're dropped into with codespaces
# I've take
# https://github.com/microsoft/vscode-dev-containers/blob/main/containers/python-3/.devcontainer/Dockerfile
# and surrounding files as inspiration. I'm extending their image rather than
# building from e.g. the official python docker images as there appears to be
# quite a bit done as part of the vscode images, presumably to make the
# experience as rich as possible. Perhaps later down the line it might be worth
# rolling our own
#
# NOTE: I haven't tried to unify with `dev.Dockerfile` at this point. I want to
# understand what leaning into codespaces looks like first.
FROM mcr.microsoft.com/vscode/devcontainers/python:3.9-bullseye
WORKDIR /workspace
# Make sure all exit codes on pipes cause failures
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Add in some useful dev cli tools
# hadolint ignore=DL3008
RUN apt-get update \
&& apt-get -y install --no-install-recommends \
# Add docker cli so we can do things like `docker logs`, and build images
"docker.io=20.*" \
# Add in useful db debugging tools
"postgresql-client=13+*" \
&& rm -rf /var/lib/apt/lists/*
# Install node
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get -y install --no-install-recommends "nodejs=14.*" \
&& rm -rf /var/lib/apt/lists/*
# NOTE: the below is mostly just a copy of /dev.Dockerfile
# Compile and install Python dependencies.
#
# Notes:
#
# - we explicitly COPY the files so that we don't need to rebuild
# the container every time a dependency changes
#
# - we need few additional OS packages for this. Let's install
# and then uninstall them when the compilation is completed.
COPY requirements.txt requirements-dev.txt ./
RUN pip install -r requirements-dev.txt --compile --no-cache-dir && \
pip install -r requirements.txt --compile --no-cache-dir
# Compile and install Yarn dependencies.
#
# Notes:
#
# - we explicitly COPY the files so that we don't need to rebuild
# the container every time a dependency changes
#
# - we need few additional OS packages for this. Let's install
# and then uninstall them when the compilation is completed.
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile && \
yarn cache clean
COPY ./plugin-server/package.json ./plugin-server/yarn.lock ./plugin-server/
RUN yarn install --frozen-lockfile && \
yarn cache clean
# Install SAML dependencies
#
# Notes:
#
# - please add in this section runtime dependences only.
# If you temporary need a package to build a Python or npm
# dependency take a look at the sections below.
#
# - we would like to include those dependencies + 'python3-saml'
# directly in the requirements.txt file but due to our CI/CD
# setup this is currently not possible. More context at:
# https://github.com/PostHog/posthog/pull/5870
# https://github.com/PostHog/posthog/pull/6575#discussion_r733457836
# https://github.com/PostHog/posthog/pull/6607
#
RUN pip install python3-saml==1.12.0 --compile --no-cache-dir