Skip to content

Troubleshooting

David Paul Ellenwood edited this page Jun 17, 2022 · 23 revisions

Troubleshooting

ERROR: for dns-external Cannot start service dns-external

If you're using macOS and you see this error when starting a project, it means your DNS port is in use, likely caused by mDNSResponder:

ERROR: for dns-external  Cannot start service dns-external: driver failed programming external connectivity on endpoint tribe-dns-external (ca1560ce424d0921cec48a87f87b3af10c9d10584423e5a20214d5326bf4c52a): Error starting userland proxy: listen tcp4 0.0.0.0:53: bind: address already in use

Run the following command in terminal to fix it:

curl -s -L https://gist.github.com/defunctl/525a6666ab211c7bfa2acd66063efe00/raw/60c24a08c792e32bae97dae4e91c607358c95561/docker-compose.override.yml -o ~/.config/squareone/global/docker-compose.override.yml && so global:stop-all && so global:start

The fix allows the dns-external container to bind any ports available on the host and still appears to resolve internal .tribe addresses.

[UnexpectedValueException] Your github oauth token for github.com contains invalid characters: "ghp_xxxxxxxxxxxxxxxxxxx"

GitHub changed their token format, so you need to rebuild your docker image to get the latest version of composer's v1 branch.

See the notes in this PR: https://github.com/moderntribe/square-one/pull/695

Docker Compose is now in the Docker CLI, try docker compose up

Note: this is an experimental docker feature and you should only switch over to test it.

You can safely ignore this warning for now, as it's not yet feature complete. However, if you'd like to test it, create a ~/.config/squareone/squareone.yml file and placing the following in it:

docker:
  compose-binary: "docker compose"

ERROR: Can't find a suitable configuration file in this directory or any parent. Are you in the right directory?

Supported filenames: docker-compose.yml, docker-compose.yaml

Affected Systems: Linux and WSL (Windows Subsystem for Linux) and macOS.

This happens on old versions of Ubuntu or WSL where the docker-compose binary is out of date.

Debian Linux/WSL

Follow the instructions under the Linux tab to upgrade to the most recent version: https://docs.docker.com/compose/install/#install-compose

macOS

Download the latest version of Docker for Desktop here: https://docs.docker.com/desktop/mac/release-notes/

Arch/Manjaro

  1. so global:stop-all
  2. sudo pamac remove docker-compose
  3. rm -rf ~/.local/bin/docker-compose (don't worry if this says file not found)
  4. sudo pamac install docker-compose-bin
  5. docker network prune

WARN[0000] network proxy: network.external.name is deprecated in favor of network.name read /dev/stderr: bad file descriptor

Affected Systems: macOS

Disable Docker Compose V2 and restart the docker application.

http://p.tri.be/f89Q1y

Composer keeps asking for a new Github personal access token

  1. delete all project specific dev/docker/composer/auth.json files
  2. delete ~/.config/squareone/defaults/auth.json
  3. Start up any square-one project (without a dev/docker/composer/auth.json)
  4. Generate a new Personal Access Token with no expiration and enter it in when so asks you for it http://p.tri.be/kbVo5y

Then, any time you start a project without a stored token so will automatically use the global one.

[ErrorException] file_put_contents(/application/.composer/auth.json): failed to open stream: No such file or directory

Upgrade Docker Desktop to 4.x https://www.docker.com/products/docker-desktop

Errors running webdriver tests on Arm Macs (M1, et al)

[Facebook\WebDriver\Exception\UnknownErrorException] unknown error: Chrome failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'dfd823aa02dc', ip: '172.20.10.4', os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.104-linuxkit', java.version: '1.8.0_292'
Driver info: driver.version: unknown

This is due to the selenium docker image not being ARM compatible. The easiest current fix is to add a docker-compose.override.yml file in each project that points the chrome container as the ARM-specific images. The contents of the override file should contain:

x-chrome: &chrome
  image: seleniarm/standalone-chromium:latest
  volumes:
    - '/dev/shm:/dev/shm'
  ports:
    - 4444

services:
  chrome:
    <<: *chrome