Troubleshooting UI Modifications in DataHub Docker Instance

Original Slack Thread

This message was deleted.

To apply your UI modifications to the DataHub instance running via Docker, you need to ensure that your changes in the datahub-web-react directory are reflected in the Docker container. Here’s a step-by-step guide to achieve this:

  1. Build the Modified React App: After making changes to the UI, you need to build the React app. Navigate to the datahub-web-react directory and run the following commands:

    yarn install
    yarn run build
    

    This will compile your changes into the build directory.

  2. Update the Docker Image: You need to update the Docker image with your changes. This involves building a new Docker image that includes your modified UI. You can do this by running the following command from the root of the DataHub repository:

    DOCKER_BUILDKIT=1 docker build -t your_datahub_frontend -f ./docker/datahub-frontend/Dockerfile .
    

    Replace your_datahub_frontend with a tag name of your choice.

  3. Modify Docker Compose to Use the New Image: Update your docker-compose.yml file to use the newly built image. Locate the datahub-frontend-react service and change the image to the one you just built:

    datahub-frontend-react:
      image: your_datahub_frontend
      ...
    
  4. Restart Docker Compose: Finally, bring down the existing Docker containers and bring them back up with the updated image:

    docker compose down
    docker compose up -d
    

This process ensures that your changes in the datahub-web-react directory are included in the Docker container and reflected in the UI.

Would you like more detailed guidance on any specific part of this process?

Sources:

The error you’re encountering indicates that the mv command is trying to move a directory (/tmp/out/main) that does not exist. This typically happens if the unzip command did not create the expected directory structure. Here’s how you can resolve this issue:

  1. Verify the Contents of the ZIP File: First, ensure that the datahub-frontend.zip file is correctly generated and contains the expected directory structure. You can do this by unzipping the file locally and inspecting it:

    unzip datahub-frontend.zip -d /tmp/datahub-frontend
    ls /tmp/datahub-frontend
    

    Check if there is a main directory inside /tmp/datahub-frontend. If not, you need to adjust the mv command in the Dockerfile.

  2. Modify the Dockerfile: If the main directory does not exist, you may need to adjust the mv command in the Dockerfile to match the actual directory structure of the unzipped contents. Here’s an example of how you might modify your Dockerfile:

    COPY ./datahub-frontend.zip /
    RUN unzip datahub-frontend.zip -d /tmp/out \
        && if [ -d "/tmp/out/main" ]; then mv /tmp/out/main /datahub-frontend; else mv /tmp/out/* /datahub-frontend; fi \
        && rm datahub-frontend.zip
    COPY ./docker/monitoring/client-prometheus-config.yaml /datahub-frontend/
    

    This modification checks if the main directory exists and moves it if it does; otherwise, it moves all contents from /tmp/out.

  3. Rebuild the Docker Image: After modifying the Dockerfile, rebuild the Docker image:

    DOCKER_BUILDKIT=1 docker build -t your_datahub_frontend -f ./docker/datahub-frontend/Dockerfile .
    
  4. Restart Docker Compose: Once the image is successfully built, restart your Docker Compose setup:

    docker compose down
    docker compose up -d
    

This should resolve the issue by ensuring the correct directory structure is used during the Docker build process.

Would you like more detailed instructions on any of these steps?

Sources:

<@U06TM7M40RK> I dont have this .zip -> How to generate it and where is located?

To generate the datahub-frontend.zip file, you need to build the DataHub frontend using Gradle. Here’s how you can do it:

  1. Navigate to the DataHub Repository: Open a terminal and navigate to the root directory of your cloned DataHub repository.

  2. Build the Frontend: Run the following Gradle command to build the DataHub frontend:

    ./gradlew :datahub-frontend:dist -x yarnTest -x yarnLint
    

    This command will compile the frontend and create a distribution ZIP file.

  3. Locate the ZIP File: After the build process completes, the datahub-frontend.zip file will be located in the datahub-frontend/build/distributions directory. You can move or rename this file as needed for your Docker build process.

    mv ./datahub-frontend/build/distributions/datahub-frontend-*.zip ./datahub-frontend.zip
    

This process will generate the datahub-frontend.zip file required for building the Docker image.

Would you like more detailed instructions on any of these steps?

Sources:

<@U06TM7M40RK> wich ine should i pick to generate the datahub-frontend.zip?

datahub-frontend-v0.15.1-SNAPSHOT.tar
datahub-frontend-v0.15.1-SNAPSHOT.tgz
datahub-frontend-v0.15.1-SNAPSHOT.zip
datahub-frontend-v1.0.0rc1-SNAPSHOT.tar
datahub-frontend-v1.0.0rc1-SNAPSHOT.zip

To generate the datahub-frontend.zip file for use in your Docker build, you should select the ZIP file that corresponds to the version you are working with. If you are working with a specific version of DataHub, you should choose the ZIP file that matches that version.

For example, if you are working with version v0.15.1-SNAPSHOT, you should use:

  • datahub-frontend-v0.15.1-SNAPSHOT.zip

If you are working with a release candidate version like v1.0.0rc1-SNAPSHOT, you should use:

  • datahub-frontend-v1.0.0rc1-SNAPSHOT.zip

The ZIP file is the correct format for use in the Docker build process, as it is typically expected by the Dockerfile to contain the necessary frontend distribution files.

Would you like more detailed instructions on any of these steps?

Sources:

<@U06TM7M40RK> but what is the difference between v0.15.1-SNAPSHOT and v1.0.0rc1-SNAPSHOT

I’m not able to find any data sources to answer your question. You might want to specify the context or purpose for which you are comparing these versions. If this doesn’t help, please reach out to the DataHub support team for further assistance. :+1: 0 button :-1: 0 button :bulb: Hint: Mention @runllm in the thread for followups.

I’m not able to find any data sources to answer your question. You might want to provide more details about the Docker image unimedpg/datahub-ui:custom, such as whether it is built locally or needs to be pulled from a private registry. If this doesn’t help, please reach out to the DataHub support team for further assistance. :+1: 0 button :-1: 0 button :bulb: Hint: Mention @runllm in the thread for followups.

<@U06TM7M40RK> datahub-frontend-react Warning pull access denied for unimedpg/datahub-ui, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied

I’m not able to find any data sources to answer your question. You might want to check if the Docker image unimedpg/datahub-ui:custom is available locally or if you need to authenticate to a private Docker registry. If this doesn’t help, please reach out to the DataHub support team for further assistance. :+1: 0 button :-1: 0 button :bulb: Hint: Mention @runllm in the thread for followups.