Dockerfile.dev 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Copyright The OpenTelemetry Authors
  2. # SPDX-License-Identifier: Apache-2.0
  3. FROM otel/cpp_format_tools
  4. ARG USER_UID=1000
  5. ARG USER_GID=1000
  6. ARG INSTALL_PACKAGES=
  7. ARG CXX_STANDARD=17
  8. ARG CMAKE_VERSION=3.31.6
  9. ARG ABSEIL_CPP_VERSION=20230125.3
  10. ARG PROTOBUF_VERSION=23.3
  11. ARG GRPC_VERSION=v1.55.0
  12. ENV CXX_STANDARD=${CXX_STANDARD}
  13. ENV CMAKE_VERSION=${CMAKE_VERSION}
  14. ENV ABSEIL_CPP_VERSION=${ABSEIL_CPP_VERSION}
  15. ENV PROTOBUF_VERSION=${PROTOBUF_VERSION}
  16. ENV GRPC_VERSION=${GRPC_VERSION}
  17. COPY ci /opt/ci
  18. RUN apt update && apt install -y wget \
  19. ninja-build \
  20. libcurl4-openssl-dev \
  21. clang-tidy \
  22. shellcheck
  23. RUN cd /opt/ci && bash setup_cmake.sh
  24. RUN cd /opt/ci && bash setup_ci_environment.sh
  25. RUN cd /opt && bash ci/setup_googletest.sh \
  26. && bash ci/install_abseil.sh \
  27. && bash ci/install_protobuf.sh \
  28. && bash ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
  29. ADD https://github.com/bazelbuild/bazelisk/releases/download/v1.22.1/bazelisk-linux-amd64 /usr/local/bin
  30. RUN git config --global core.autocrlf input \
  31. && chmod +x /usr/local/bin/bazelisk-linux-amd64
  32. ENV INSTALL_PACKAGES=${INSTALL_PACKAGES}
  33. ENV USER_NAME=devuser
  34. ENV USER_UID=${USER_UID}
  35. ENV USER_GID=${USER_GID}
  36. ENV IS_CONTAINER_BUILD=true
  37. COPY ./.devcontainer/customize_container.sh /tmp/opentelemetry_cpp/devcontainer/customize_container.sh
  38. RUN /tmp/opentelemetry_cpp/devcontainer/customize_container.sh
  39. RUN apt install -y npm && npm install -g [email protected]
  40. USER devuser
  41. WORKDIR /workspaces/opentelemetry-cpp
  42. ENTRYPOINT []
  43. CMD ["/bin/bash"]