failed to solve: process ... did not complete successfully: exit code: 1

I am trying to run the Plasmic WAB from docker compose on Windows with Docker Desktop installed. I have tried running the command several times. I am on a LAN connection that is able to download the image files just fine, but from within the container, it seems to suffer network connectivity when fetching packages and times out.

Command Run:

docker compose up -d

Problem Steps:

=> [builder 5/7] RUN yarn install --frozen-lockfile --prefer-offline

=> [builder 7/7] RUN mkdir -p /tmp/.plasmic && cp platform/wab/tools/docker-dev/secrets.json /tmp/.plasmic/secrets.json && yarn setup && yarn se

In-Process Problem Step:

=> => # [2/4] Fetching packages…

Primary Errors:

failed to solve: process “/bin/sh -c yarn install --frozen-lockfile --prefer-offline” did not complete successfully: exit code: 1

failed to solve: process “/bin/sh -c mkdir -p /tmp/.plasmic && cp platform/wab/tools/docker-dev/secrets.json /tmp/.plasmic/secrets.json && yarn setup && yarn setup:canvas-packages && yarn cache clean” did not complete successfully: exit code: 1

In-Process Error (repeats):

=> => # info There appears to be trouble with your network connection. Retrying…

Comments:

Problem was resolved on the fourth try through brute force. I still think that this topic is worth posting in case anyone else has this problem and just needs a little bit of hope.

I had a follow up error when building, too. Here is a snippet of the error stack:

1624.8 tools/run.bash: line 2: $'\r': command not found
', conditional binary operator expecteded token `]]
'624.8 tools/run.bash: line 4: syntax error near `]]
'624.8 tools/run.bash: line 4: `if [[ $debug ]]
1624.8 error Command failed with exit code 2.
1624.8 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
1624.9 make: *** [Makefile:22: src/wab/shared/model/classes.ts] Error 2
1624.9 error Command failed with exit code 2.
1624.9 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
1625.5 error Command failed with exit code 2.
1625.5 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
------
Dockerfile.dev.aio:27

--------------------

  26 |     # Secrets setup and build tools

  27 | >>> RUN mkdir -p /tmp/.plasmic && \

  28 | >>>     cp platform/wab/tools/docker-dev/secrets.json /tmp/.plasmic/secrets.json && \

  29 | >>>     yarn setup && \

  30 | >>>     yarn setup:canvas-packages && \

  31 | >>>     yarn cache clean

  32 |

--------------------

failed to solve: process "/bin/sh -c mkdir -p /tmp/.plasmic &&     cp platform/wab/tools/docker-dev/secrets.json /tmp/.plasmic/secrets.json &&     yarn setup &&     yarn setup:canvas-packages &&     yarn cache clean" did not complete successfully: exit code: 2



View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/a84wjrqt1m014ydsvj12hnh24

I was able to add this to the .\platform/wab/tools/docker-dev/Dockerfile.dev.aio file right after COPY .. and before the yarn setup:

# Normalize line endings and ensure scripts are executable
RUN apk add --no-cache dos2unix \
 && echo "[fix] normalizing scripts in platform/wab/tools" \
 && find platform/wab/tools -type f \( -name "*.sh" -o -name "*.bash" \) -exec dos2unix {} + \
 && find platform/wab/tools -type f \( -name "*.sh" -o -name "*.bash" \) -exec chmod +x {} + \
 && head -n3 platform/wab/tools/run.bash || true

Then I ran this command:

docker compose build --no-cache plasmic-wab

Which succeeded. I then ran this command again:

docker compose up -d

Now I am waiting for it to finish creating. Seems to be hung up on creating the container:

Container plasmic-plasmic-wab-1 Creating 680.1s

Part 2

The containers built after a couple more tries, but the /r is still causing a problem when running the container. I checked the container logs and found this:

2025-12-10 14:30:21

yarn run v1.22.22
2025-12-10 14:30:21

(node:9) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
2025-12-10 14:30:21

(Use `node --trace-deprecation ...` to show where the warning was created)
2025-12-10 14:30:21

warning Skipping preferred cache folder "/home/plasmic/.cache/yarn" because it is not writable.
2025-12-10 14:30:21

warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-100".
2025-12-10 14:30:21

$ npm run run-ts -- ./node_modules/.bin/typeorm migration:run
2025-12-10 14:30:23

npm warn Unknown env config "version-commit-hooks". This will stop working in the next major version of npm.
2025-12-10 14:30:23

npm warn Unknown env config "version-tag-prefix". This will stop working in the next major version of npm.
2025-12-10 14:30:23

npm warn Unknown env config "version-git-message". This will stop working in the next major version of npm.
2025-12-10 14:30:23

npm warn Unknown env config "argv". This will stop working in the next major version of npm.
2025-12-10 14:30:23

npm warn Unknown env config "version-git-tag". This will stop working in the next major version of npm.
2025-12-10 14:30:26

\|
2025-12-10 14:30:26

> wab@0.0.1 run-ts
2025-12-10 14:30:26

> bash tools/run.bash ./node_modules/.bin/typeorm migration:run
2025-12-10 14:30:26

2025-12-10 14:30:26

|tools/run.bash: line 2: $'\r': command not found
2025-12-10 14:30:26

tools/run.bash: line 4: unexpected token `]]
2025-12-10 14:31:27

', conditional binary operator expected
2025-12-10 14:30:26

tools/run.bash: line 4: syntax error near `]]
2025-12-10 14:31:27

'
2025-12-10 14:30:26

tools/run.bash: line 4: `if [[ $debug ]]
2025-12-10 14:31:27

'
2025-12-10 14:30:27

\|error Command failed with exit code 2.

So I updated the file again to be a little more inclusive of the local problem file:


# Ensure bash and dos2unix exist (Alpine)
RUN apk add --no-cache bash dos2unix

# Normalize line endings and ensure scripts are executable
# Adjust paths to match YOUR repo structure (use absolute or correct relative paths)
RUN echo "[fix] normalizing scripts" \
 && for dir in tools platform/wab/tools; do \
      if [ -d "$dir" ]; then \
        find "$dir" -type f \( -name "*.sh" -o -name "*.bash" \) -exec dos2unix {} + \
        && find "$dir" -type f \( -name "*.sh" -o -name "*.bash" \) -exec chmod +x {} + ; \
      fi; \
    done \
 && [ -f tools/run.bash ] && head -n3 tools/run.bash || true \
 && [ -f platform/wab/tools/run.bash ] && head -n3 platform/wab/tools/run.bash || true

And I’m seeing if that works.

@EmCmNeDt Hi!
We haven’t tested this extensively on Windows. I know there might sometimes be issues between Unix/Windows environments, so this is probably the case.
In theory, it can be way easier and more reliable to go with the regular installation process, without using Docker (you can just spin up the database in Docker, and leave the rest running in Node.js on your main OS)

Curious to know if you managed to launch it on windows. We can later add some fixes to our main repo for windows support if you’ll want to create a PR.

I did! I needed a beefier laptop with a more stable connection. Luckily, I had one. I installed docker ce in the Ubuntu WSL environment, then Docker Desktop (as admin? which probably isn’t required) in Windows env, went back to the Ubuntu WSL terminal, downloaded the git repo, ran docker compose from there. I had to fix a permission issue with the GUID (different thread on here), but after that, it worked… sorta. In this way, I was able to view the logs from Docker Desktop.

I’m now waiting on an email that was never sent to confirm my account (I found the activation link in the docker log, so I’m good now). At least the container is running finally… all this is to say, apart from the permissions issue in the other thread, a PR is not really required except to update the CONTRIBUTING documentation with this solution.

Speaking of the hybrid container env, do you have a docker-compose.yml file for that? If that truly is the preferred solution, I’d rather not spin up a 7GB container for the wab. I don’t think anyone would, and I didn’t really get that it wasn’t the preferred solution to use the docker-compose file as is.

Usually it’s not required to add docker as admin. If i remember correctly - it’s recommended to create a docker user group with specific permissions.

As for the hybrid container - you don’t really need a separate docker-compose file for it. There is a separate command you can run to only build and launch the db, it’s present in our self hosting getting started readme - docker-compose up -d --no-deps plasmic-db
I do agree it’s not really obvious that hybrid approach is the suggested way of doing things. Some performance improvements definitely need to occur to switch to docker workflow completely. But we do state in docs that manual setup is preferred.

It’s possible I am an idiot, too. Just throwing it out there. While I do work at such a pace where skimming is how I read normally, it’s not that the writing style was incompatible with my reading style. In fact, I do remember seeing that manual setup is preferred, but it didn’t sit right. I just didn’t get it.

For one, I didn’t really get how the dependencies were already setup by that point - like I expected postgres to need a password, but it was set in an env file at a later step? I know so little about postgres, but I would think a database engine would need some type of admin level credentials to be setup.

Then there was the part about the docker setup claiming it was “default”, which is a type of preferred solution in the sense the software developers preferred to make it default, so then why would those same developers recommend a different solution? Pretty conflicting to say the least, so I chose the path of least resistance, or so I thought.

Finally, and this was the worst part - the document flow was all off. It didn’t read like a process. It read like a choose your own adventure story without the instructions to go to what page at the end of the section. Check out the outline:

# Developing Plasmic Studio: getting started
    ## Database setup
    ## OS-specific instructions
        ### Mac OS X
        ### Ubuntu 18.04+
    ## asdf
    ## Docker setup
    ## Manual setup (suggested)
        ### 1. Environment variables
        ### 2. Installing dependencies
        ### 3. Seeding the database
        ### 4. Application setup
        ### 5. Starting dev servers
    ## Using the app
    ## Troubleshooting
        ### Executable `hadolint` not found
        ### tools/dev.bash: line 3: concurrently: command not found
    ## Next steps

The Docker Setup is on the same level as Database setup and OS-specific Instructions, which are not required for the Docker Setup, even though they are required for the hybrid and/or manual setups. I did some of the OS-specific instructions randomly, just in case. That’s the cautious idiot in me.

Here is my suggestion:

# Developing Plasmic Studio: getting started
    ## Choose Your Setup
       ### Hybrid Setup (recommended)
            1. Database setup
               a. Mac OS X
               b. Ubuntu 18.04+
               c. Windows 10+
            2. Applicable Manual Setup Steps**
       ### Manual Setup (difficult, resource light)
            1. OS-specific instructions
               a. Mac OS X
               b. Ubuntu 18.04+
               c. Windows 10+
            2. asdf instructions
            3. Environment variables
            4. Installing dependencies
            5. Seeding the database
            6. Application setup
            7. Starting dev servers
       ### Docker Setup (easy, resource heavy)
            1. Mac OS X
            2. Ubuntu 18.04+
            3. Windows 10+
    ## Using the app
    ## Troubleshooting
        ### Executable `hadolint` not found
        ### tools/dev.bash: line 3: concurrently: command not found
    ## Next steps

**Choose your own adventure with the page turn instructions.

You could flatten the structure a little bit if the options were really clear:

# Developing Plasmic Studio: getting started
    ## Choose Your Setup
       ### Hybrid Setup (recommended)
       ### Manual Setup (difficult, resource light)
       ### Docker Setup (easy, resource heavy)
    ## Option 1: Hybrid Setup
       ### Database setup
           1. Mac OS X
           2. Ubuntu 18.04+
           3. Windows 10+
       ### Applicable Manual Setup Steps**
    ## Option 2: Manual Setup
       ### OS-specific instructions
           1. Mac OS X
           2. Ubuntu 18.04+
           3. Windows 10+
       ### asdf instructions
       ### Environment variables
       ### Installing dependencies
       ### Seeding the database
       ### Application setup
       ### Starting dev servers
    ## Option 3: Docker Setup
       ### Mac OS X
       ### Ubuntu 18.04+
       ### Windows 10+
    ## Using the app
    ## Troubleshooting
        ### Executable `hadolint` not found
        ### tools/dev.bash: line 3: concurrently: command not found
    ## Next steps

Thanks for the feedback, i really appreciate you taking the time to write suggestions! @EmCmNeDt
Created a ticket to re-structure the docs :+1:

1 Like