New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the man/Dockerfile for arm #25192

Merged
merged 1 commit into from Aug 3, 2016

Conversation

Projects
None yet
10 participants
@dnephin
Member

dnephin commented Jul 28, 2016

Fixes #25124

cc @tiborvass

@justincormack

This comment has been minimized.

Show comment
Hide comment
@justincormack

justincormack Jul 28, 2016

Contributor

The problem here is that each architecture needs a new Dockerfile to build the man pages.

We have an open PR for Power debs for example #23438 and this will now need to add a man page builder, and there is not yet a ppc64le/alpine, so it will have to be custom.

Contributor

justincormack commented Jul 28, 2016

The problem here is that each architecture needs a new Dockerfile to build the man pages.

We have an open PR for Power debs for example #23438 and this will now need to add a man page builder, and there is not yet a ppc64le/alpine, so it will have to be custom.

@justincormack

This comment has been minimized.

Show comment
Hide comment
Contributor

justincormack commented Jul 28, 2016

@StefanScherer

This comment has been minimized.

Show comment
Hide comment
@StefanScherer

StefanScherer Jul 28, 2016

Contributor

@dnephin Thanks! I'll try that soon.
@justincormack That's right, but the previous build with make manpages did only work for amd64.

Contributor

StefanScherer commented Jul 28, 2016

@dnephin Thanks! I'll try that soon.
@justincormack That's right, but the previous build with make manpages did only work for amd64.

@dnephin

This comment has been minimized.

Show comment
Hide comment
@dnephin

dnephin Jul 28, 2016

Member

@justincormack I understand the problem, but what is the solution? Is there some way to make a single Dockerfile work for multiple architectures?

Member

dnephin commented Jul 28, 2016

@justincormack I understand the problem, but what is the solution? Is there some way to make a single Dockerfile work for multiple architectures?

@justincormack

This comment has been minimized.

Show comment
Hide comment
@justincormack

justincormack Jul 28, 2016

Contributor

@dnephin can we add the prerequisites to build the man pages to the main Dockerfile? We already have one for each architecture there, and they have Go.

Otherwise I think vendoring is the best solution.

Contributor

justincormack commented Jul 28, 2016

@dnephin can we add the prerequisites to build the man pages to the main Dockerfile? We already have one for each architecture there, and they have Go.

Otherwise I think vendoring is the best solution.

@dnephin

This comment has been minimized.

Show comment
Hide comment
@dnephin

dnephin Jul 28, 2016

Member

I'm not really a fan of either of those options.

The current Dockerfile is already way too big. Putting every project task into a single image makes build tasks slow, and is hard to maintain. You can't really track which dependencies are used for which tasks. I really think we should be splitting the main Dockerfile into different ones for: build, linting, cross-build, docs (already done), and man pages.

I really dislike checking in generated code into the repo.

Member

dnephin commented Jul 28, 2016

I'm not really a fan of either of those options.

The current Dockerfile is already way too big. Putting every project task into a single image makes build tasks slow, and is hard to maintain. You can't really track which dependencies are used for which tasks. I really think we should be splitting the main Dockerfile into different ones for: build, linting, cross-build, docs (already done), and man pages.

I really dislike checking in generated code into the repo.

@StefanScherer

This comment has been minimized.

Show comment
Hide comment
@StefanScherer

StefanScherer Jul 28, 2016

Contributor

@dnephin Your PR works so far. Still building the three debs for ARM, but making manpages worked fine.

Contributor

StefanScherer commented Jul 28, 2016

@dnephin Your PR works so far. Still building the three debs for ARM, but making manpages worked fine.

@DieterReuter

This comment has been minimized.

Show comment
Hide comment
@DieterReuter

DieterReuter Jul 28, 2016

Contributor

Probable in the future we could connect to a multi-arch Docker Swarm as build environment, so we could build the man pages in an amd64 container and the binaries natively on amd64/arm/ppc64le, and so on.

Contributor

DieterReuter commented Jul 28, 2016

Probable in the future we could connect to a multi-arch Docker Swarm as build environment, so we could build the man pages in an amd64 container and the binaries natively on amd64/arm/ppc64le, and so on.

Show outdated Hide outdated man/Dockerfile
ENV GOPATH=/go
RUN export GLIDE=v0.11.1; \
export SRC=https://dl.bintray.com/dnephin/glide/; \
curl -sL -o /usr/bin/glide ${SRC}/glide-${GLIDE}-linux-amd64 && \

This comment has been minimized.

@justincormack

justincormack Jul 28, 2016

Contributor

I really don't like downloading binaries like this. There should be autobuild or official containers with the prerequisites, with a clear way for people to build them for different architectures from source if we are going to have per architecture Dockerfiles.

@justincormack

justincormack Jul 28, 2016

Contributor

I really don't like downloading binaries like this. There should be autobuild or official containers with the prerequisites, with a clear way for people to build them for different architectures from source if we are going to have per architecture Dockerfiles.

This comment has been minimized.

@dnephin

dnephin Jul 28, 2016

Member

There is no official build for arm yet (it's being worked on Masterminds/glide#528).

I can setup circle CI to build binaries from a fork I guess, but I wanted to get this fixed asap to unblock building the arm debs. I'll look at getting that setup next week.

@dnephin

dnephin Jul 28, 2016

Member

There is no official build for arm yet (it's being worked on Masterminds/glide#528).

I can setup circle CI to build binaries from a fork I guess, but I wanted to get this fixed asap to unblock building the arm debs. I'll look at getting that setup next week.

This comment has been minimized.

@justincormack

justincormack Jul 28, 2016

Contributor

Ok, but we are talking about getting an upstream project to generate builds for eventually ppc64le, s390x, arm64, arm, and more... in order to build absolutely identical man pages. It really makes vendoring seem like a better option.

@justincormack

justincormack Jul 28, 2016

Contributor

Ok, but we are talking about getting an upstream project to generate builds for eventually ppc64le, s390x, arm64, arm, and more... in order to build absolutely identical man pages. It really makes vendoring seem like a better option.

This comment has been minimized.

@dnephin

dnephin Jul 28, 2016

Member

Only having to build the man pages on a single platform would be great. I believe we could do that with a jenkins pipeline and build artifacts.

@dnephin

dnephin Jul 28, 2016

Member

Only having to build the man pages on a single platform would be great. I believe we could do that with a jenkins pipeline and build artifacts.

This comment has been minimized.

@tophj-ibm

tophj-ibm Jul 28, 2016

Contributor

What about cloning and building from source like we do in the main Dockerfiles? I just tested on power and was able to make a glide binary and make the man pages from there.

@tophj-ibm

tophj-ibm Jul 28, 2016

Contributor

What about cloning and building from source like we do in the main Dockerfiles? I just tested on power and was able to make a glide binary and make the man pages from there.

This comment has been minimized.

@dnephin

dnephin Aug 2, 2016

Member

Building from source should work. I'll make that change

@dnephin

dnephin Aug 2, 2016

Member

Building from source should work. I'll make that change

@jim3ma

This comment has been minimized.

Show comment
Hide comment
@jim3ma

jim3ma Jul 29, 2016

@dnephin
"I really think we should be splitting the main Dockerfile into different ones for: build, linting, cross-build, docs (already done), and man pages."
+1
Sometimes we need checkout source code and build binary, the building base image is like golang:1.6-alpine, but, the output binary just depends on alpine:xxx.

jim3ma commented Jul 29, 2016

@dnephin
"I really think we should be splitting the main Dockerfile into different ones for: build, linting, cross-build, docs (already done), and man pages."
+1
Sometimes we need checkout source code and build binary, the building base image is like golang:1.6-alpine, but, the output binary just depends on alpine:xxx.

Fix the man/Dockerfile for arm
Signed-off-by: Daniel Nephin <dnephin@docker.com>
@dnephin

This comment has been minimized.

Show comment
Hide comment
@dnephin

dnephin Aug 2, 2016

Member

Ok, glide is now built from source instead of pulled from my bintray

Member

dnephin commented Aug 2, 2016

Ok, glide is now built from source instead of pulled from my bintray

@StefanScherer

This comment has been minimized.

Show comment
Hide comment
@StefanScherer

StefanScherer Aug 2, 2016

Contributor

I'm testing the updated PR on Scaleway

Contributor

StefanScherer commented Aug 2, 2016

I'm testing the updated PR on Scaleway

@StefanScherer

This comment has been minimized.

Show comment
Hide comment
@StefanScherer

StefanScherer Aug 2, 2016

Contributor

make deb works fine on ARM with this PR

Contributor

StefanScherer commented Aug 2, 2016

make deb works fine on ARM with this PR

@tiborvass

This comment has been minimized.

Show comment
Hide comment
@tiborvass

tiborvass Aug 3, 2016

Collaborator

LGTM tested this too.

Collaborator

tiborvass commented Aug 3, 2016

LGTM tested this too.

@tiborvass tiborvass merged commit 5e91023 into moby:master Aug 3, 2016

8 checks passed

docker/dco-signed All commits signed
Details
documentation success
Details
experimental Jenkins build Docker-PRs-experimental 21977 has succeeded
Details
gccgo Jenkins build Docker-PRs-gccgo 8589 has succeeded
Details
janky Jenkins build Docker-PRs 30644 has succeeded
Details
userns Jenkins build Docker-PRs-userns 12672 has succeeded
Details
win2lin Jenkins build Docker-PRs-Win2Lin 29238 has succeeded
Details
windowsRS1 Jenkins build Docker-PRs-WoW-RS1 1277 has succeeded
Details

@dnephin dnephin deleted the dnephin:fix-manpages-on-arm branch Aug 3, 2016

sfsmithcha added a commit to sfsmithcha/docker that referenced this pull request Aug 4, 2016

@tiborvass tiborvass referenced this pull request Aug 11, 2016

Merged

Cherry picks 1.12.1 #25637

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment