Skip to content
This repository has been archived by the owner on Jul 31, 2023. It is now read-only.

updates to tools/docker-format/Dockerfile : container builds again #449

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions tools/docker-format/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,28 @@
FROM ubuntu:cosmic

# repositories are obsolete. the image need to be changed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we update to something newer than cosmic, do we also get golang>=1.12?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upgrading from cosmic to focal ( 20.04 LTS ) gives you exactly golang 1.13.
It requires python3 but the same cmake-format package version works.
The default clang-format is 10.0 and needs to be downgraded not to have side effects on the current c++ code.

On other hand, installing golang manually makes the upgrade path clear should buildifier requirements change again.

currently in this PR

docker run -v $PWD:/opencensus-cpp -it opencensus-cpp/format:cosmic /opencensus-cpp/tools/docker-format/run.sh
clang-format version 7.0.0-3 (tags/RELEASE_700/final)
Running buildifier.
Running cmake-format 0.6.10.

potential "focal" version

docker run -v $PWD:/opencensus-cpp -it opencensus-cpp/format:focal /opencensus-cpp/tools/docker-format/run.sh

clang-format version 7.0.1-12 (tags/RELEASE_701/final)
Running buildifier.
Running cmake-format 0.6.10.

I can submit the latter if you'd rather.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Is the "focal" version simpler?

  2. Instead of installing golang in "cosmic" is it easier to just install a release of buildifier? e.g. https://github.com/bazelbuild/buildtools/releases/download/3.3.0/buildifier

RUN perl -pi -e 's@//archive@//old-releases@g' /etc/apt/sources.list
# disable security updates altogether
RUN perl -pi -e 's@^(.*security.*)$@#$1@g' /etc/apt/sources.list

RUN apt update && \
apt install -y clang-format golang git python-pip && \
go get -v github.com/bazelbuild/buildtools/buildifier && \
apt install -y clang-format git python-pip && \
pip install 'cmake_format>=0.5.2'

# brings golang to 1.10 by default.bazelbuilds wants 1.12 minimum....
#RUN apt install -y golang

RUN apt install -y curl
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please merge all of the RUNs together into a single one to avoid a long chain of docker overlays.

RUN curl -sL https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz -o go1.13.3.linux-amd64.tar.gz
RUN tar -xf go1.13.3.linux-amd64.tar.gz
RUN mv go /usr/local/go-1.13
RUN rm go1.13.3.linux-amd64.tar.gz

ENV GOROOT=/usr/local/go-1.13
ENV GOPATH=/root/go
RUN mkdir ${GOPATH}

RUN ${GOROOT}/bin/go get github.com/bazelbuild/buildtools/buildifier
ENV PATH=${GOPATH}/bin:${GOROOT}/bin:${PATH}

CMD ["/bin/bash"]