这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@nerg4l
Copy link
Contributor

@nerg4l nerg4l commented May 19, 2022

AMD64 version of Go is installed inside the devcontainer but the platform of dokku image is not defined. The platform of the image has to be defined for ARM devices because on these machines ARM version of dokku image is used by default.

AMD64 version of Go is installed inside the devcontainer but the platform of dokku image is not defined. The platform of the image has to be defined for ARM devices because on these machines ARM version of dokku image is used by default.
@josegonzalez
Copy link
Member

Worth fixing the golang version to support arm architectures instead?

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

I will have a look on that.

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

I keep running into the following error message on M1 when I try to use linux/arm64 platform:

------
 > [internal] load build context:
------
error from sender: failed to xattr /Users/lgorog/GolandProjects/dokku/tmp/data/etc/ssh/sedg8XNmt: permission denied

@josegonzalez
Copy link
Member

Might be this:

find "$dir" -print0 | xargs -0 chown -h dokku:dokku

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

It is somehow caused by COPY . .

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

Okay, it turns out was caused by dokku/tmp dir, after removing it I run into a new problem 😄

executor failed running [/bin/sh -c wget https://dl.google.com/go/go1.17.9.linux-arm64.tar.gz]: exit code: 5

@josegonzalez
Copy link
Member

Weird, that definitely is downloadable by me...

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

With --no-check-certificate flag it works fine. I have to find out why the cert is not accepted.

@josegonzalez
Copy link
Member

Is there a better download url? Maybe we need ca-certificates update or something on arm.

Also maybe upgrading the focal image works: https://github.com/phusion/baseimage-docker/releases/tag/focal-1.2.0

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

I tried

RUN apt-get install -y ca-certificates

which caused exit code 100 so I added

RUN apt-get update && apt-get install -y apt-transport-https

and now it seems to be working

@nerg4l
Copy link
Contributor Author

nerg4l commented May 19, 2022

Now if I try to open the devcontainer in VSCode I get the following:

[2022-05-19T21:24:50.928Z] Remote-Containers 0.234.0 in VS Code 1.67.2 (c3511e6c69bb39013c4a4b7b9566ec1ca73fc4d5).
[2022-05-19T21:24:50.928Z] Start: Resolving Remote
[2022-05-19T21:24:50.940Z] Setting up container for folder or workspace: /Users/lgorog/GolandProjects/dokku/workspace.code-workspace
[2022-05-19T21:24:50.948Z] Start: Check Docker is running
[2022-05-19T21:24:50.948Z] Start: Run: docker version --format {{.Server.APIVersion}}
[2022-05-19T21:24:51.038Z] Stop (90 ms): Run: docker version --format {{.Server.APIVersion}}
[2022-05-19T21:24:51.039Z] Server API version: 1.41
[2022-05-19T21:24:51.039Z] Stop (91 ms): Check Docker is running
[2022-05-19T21:24:51.039Z] Start: Run: docker volume ls -q
[2022-05-19T21:24:51.095Z] Stop (56 ms): Run: docker volume ls -q
[2022-05-19T21:24:51.112Z] Start: Run: docker ps -q -a --filter label=vsch.local.folder=/Users/lgorog/GolandProjects/dokku --filter label=vsch.quality=stable
[2022-05-19T21:24:51.176Z] Stop (64 ms): Run: docker ps -q -a --filter label=vsch.local.folder=/Users/lgorog/GolandProjects/dokku --filter label=vsch.quality=stable
[2022-05-19T21:24:51.176Z] Start: Run: docker inspect --type container 09db13ccee29
[2022-05-19T21:24:51.238Z] Stop (62 ms): Run: docker inspect --type container 09db13ccee29
[2022-05-19T21:24:51.238Z] Start: Run: /Applications/VSCode.app/Contents/MacOS/Electron /Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/lgorog/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-data-folder .vscode-server/data/Machine --container-system-data-folder /var/vscode-server --workspace-folder /Users/lgorog/GolandProjects/dokku --workspace-mount-consistency cached --id-label vsch.local.folder=/Users/lgorog/GolandProjects/dokku --id-label vsch.quality=stable --log-level debug --log-format json --config /Users/lgorog/GolandProjects/dokku/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2022-05-19T21:24:51.331Z] remote-containers 0.234.0.
[2022-05-19T21:24:51.331Z] Start: Resolving Remote
[2022-05-19T21:24:51.333Z] Running the initializeCommand from devcontainer.json...

[2022-05-19T21:24:51.333Z] Start: Run: mkdir -p tmp/data
[2022-05-19T21:24:51.389Z] Stop (56 ms): Run: mkdir -p tmp/data
[2022-05-19T21:24:51.389Z] 
[2022-05-19T21:24:51.389Z] Start: Run: docker ps -q -a --filter label=vsch.local.folder=/Users/lgorog/GolandProjects/dokku --filter label=vsch.quality=stable
[2022-05-19T21:24:51.473Z] Stop (84 ms): Run: docker ps -q -a --filter label=vsch.local.folder=/Users/lgorog/GolandProjects/dokku --filter label=vsch.quality=stable
[2022-05-19T21:24:51.474Z] Start: Run: docker inspect --type container 09db13ccee29
[2022-05-19T21:24:51.542Z] Stop (68 ms): Run: docker inspect --type container 09db13ccee29
[2022-05-19T21:24:51.543Z] Start: Starting container
[2022-05-19T21:24:51.543Z] Start: Run: docker start 09db13ccee29f52633cd8384796263287f73867c2e622a2616e9177d54130de3
[2022-05-19T21:24:51.830Z] Stop (287 ms): Run: docker start 09db13ccee29f52633cd8384796263287f73867c2e622a2616e9177d54130de3
[2022-05-19T21:24:51.830Z] Stop (287 ms): Starting container
[2022-05-19T21:24:51.830Z] Start: Run: docker ps -q -a --filter label=vsch.local.folder=/Users/lgorog/GolandProjects/dokku --filter label=vsch.quality=stable
[2022-05-19T21:24:51.891Z] Stop (61 ms): Run: docker ps -q -a --filter label=vsch.local.folder=/Users/lgorog/GolandProjects/dokku --filter label=vsch.quality=stable
[2022-05-19T21:24:51.891Z] Start: Run: docker inspect --type container 09db13ccee29
[2022-05-19T21:24:51.960Z] Stop (69 ms): Run: docker inspect --type container 09db13ccee29
[2022-05-19T21:24:51.961Z] Start: Inspecting container
[2022-05-19T21:24:51.961Z] Start: Run: docker inspect --type container 09db13ccee29f52633cd8384796263287f73867c2e622a2616e9177d54130de3
[2022-05-19T21:24:52.018Z] Stop (57 ms): Run: docker inspect --type container 09db13ccee29f52633cd8384796263287f73867c2e622a2616e9177d54130de3
[2022-05-19T21:24:52.018Z] Stop (57 ms): Inspecting container
[2022-05-19T21:24:52.019Z] Start: Run in container: /bin/sh
[2022-05-19T21:24:52.020Z] Start: Run in container: uname -m
[2022-05-19T21:24:52.082Z] Stop (63 ms): Run in container: /bin/sh
[2022-05-19T21:24:52.083Z] Shell server terminated (code: 1, signal: null)
[2022-05-19T21:24:52.083Z] Error response from daemon: Container 09db13ccee29f52633cd8384796263287f73867c2e622a2616e9177d54130de3 is not running
[2022-05-19T21:24:52.083Z] Start: Run in container: cat /etc/passwd
[2022-05-19T21:24:52.083Z] Stdin closed!
[2022-05-19T21:24:52.083Z] Error: An error occurred setting up the container.
[2022-05-19T21:24:52.084Z]     at IR (/Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js:221:995)
[2022-05-19T21:24:52.084Z]     at zy (/Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js:221:933)
[2022-05-19T21:24:52.084Z]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[2022-05-19T21:24:52.084Z]     at async $R (/Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js:226:2007)
[2022-05-19T21:24:52.084Z]     at async Zy (/Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js:226:3112)
[2022-05-19T21:24:52.084Z]     at async BR (/Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js:226:12448)
[2022-05-19T21:24:52.084Z]     at async qR (/Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js:226:12204)
[2022-05-19T21:24:52.085Z] Stop (847 ms): Run: /Applications/VSCode.app/Contents/MacOS/Electron /Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/lgorog/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-data-folder .vscode-server/data/Machine --container-system-data-folder /var/vscode-server --workspace-folder /Users/lgorog/GolandProjects/dokku --workspace-mount-consistency cached --id-label vsch.local.folder=/Users/lgorog/GolandProjects/dokku --id-label vsch.quality=stable --log-level debug --log-format json --config /Users/lgorog/GolandProjects/dokku/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2022-05-19T21:24:52.085Z] Exit code 1
[2022-05-19T21:24:52.087Z] Command failed: /Applications/VSCode.app/Contents/MacOS/Electron /Users/lgorog/.vscode/extensions/ms-vscode-remote.remote-containers-0.234.0/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/lgorog/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-data-folder .vscode-server/data/Machine --container-system-data-folder /var/vscode-server --workspace-folder /Users/lgorog/GolandProjects/dokku --workspace-mount-consistency cached --id-label vsch.local.folder=/Users/lgorog/GolandProjects/dokku --id-label vsch.quality=stable --log-level debug --log-format json --config /Users/lgorog/GolandProjects/dokku/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2022-05-19T21:24:52.087Z] Exit code 1

@josegonzalez
Copy link
Member

Thats strange, we don't open that file in this codebase.

What happens if you replace the devcontainer Dockerfile with the upstream phusion/baseimage:focal-1.1.0 image (with nothing else)?

@nerg4l
Copy link
Contributor Author

nerg4l commented May 21, 2022

I tried again after stopping and removing everything to cleanup the mess. The currently pushed version seems to be working.

# uname -a
Linux b755e6a18681 5.10.104-linuxkit #1 SMP PREEMPT Thu Mar 17 17:05:54 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

The next error I ran into after I tried to push a project:

------
 > [internal] load metadata for docker.io/dokku/ruby-getting-started:latest:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
remote:  !     Failure injecting BUILD_ENV into build environment
remote: 2022/05/21 18:26:06 exit status 1
remote: 2022/05/21 18:26:06 exit status 1
remote:  !     Removing invalid image tag dokku/ruby-getting-started:latest
remote:  !     App build failed
To dokku.me:ruby-getting-started
 ! [remote rejected] main -> master (pre-receive hook declined)
error: failed to push some refs to 'dokku@dokku.me:ruby-getting-started'

I think this one is caused by a different issue. I tried it with amd64 and arm64 arch images on M1.

@josegonzalez
Copy link
Member

You can't use herokuish on arm instances. In the devcontainer, what is the output of dpkg --print-architecture?

@nerg4l
Copy link
Contributor Author

nerg4l commented May 21, 2022

# dpkg --print-architecture
arm64

But the build starts with the following:

# git push dokku main:master
Pseudo-terminal will not be allocated because stdin is not a terminal.
Enumerating objects: 450, done.
Counting objects: 100% (450/450), done.
Delta compression using up to 4 threads
Compressing objects: 100% (242/242), done.
Writing objects: 100% (450/450), 98.33 KiB | 98.33 MiB/s, done.
Total 450 (delta 181), reused 449 (delta 180)
remote: Resolving deltas: 100% (181/181), done.
-----> Cleaning up...
-----> Building ruby-getting-started from herokuish
remote: WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
-----> Adding BUILD_ENV to build environment...

Because of the warning I would guess it tries to use linux/amd64 of herokuish.

@nerg4l
Copy link
Contributor Author

nerg4l commented May 21, 2022

$ docker run --rm -v /abs/app/path:/tmp/app gliderlabs/herokuish /bin/herokuish test

Command seem to work correctly on arm64. Output: https://gist.github.com/nerg4l/bce69372d17cb50a940285bd851d4c8f

@josegonzalez
Copy link
Member

Yeah we should disable herokuish on arm64 in the builder-herokuish/builder-detect file.

@josegonzalez
Copy link
Member

I redid this in #5392 since I had to switch to an ARM64 machine. No tests with herokuish will work (because herokuish isn't built/released for ARM/ARM64 as most/all of the buildpacks won't work) but thats okay.

Thanks for providing the groundwork here, it was super useful!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants