<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jochen Rui</title>
    <description>The latest articles on DEV Community by Jochen Rui (@jochen).</description>
    <link>https://dev.to/jochen</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F672884%2Fe3af4379-648b-4b0c-9127-58fc4f34319b.jpeg</url>
      <title>DEV Community: Jochen Rui</title>
      <link>https://dev.to/jochen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jochen"/>
    <language>en</language>
    <item>
      <title>Build a Full Stack Translation Web App Using React JS, ExpressJS, TypeScript (Part 1) | Free Video</title>
      <dc:creator>Jochen Rui</dc:creator>
      <pubDate>Fri, 13 Jan 2023 16:31:23 +0000</pubDate>
      <link>https://dev.to/jochen/build-a-full-stack-translation-web-app-using-react-js-expressjs-typescript-part-1-free-video-1og</link>
      <guid>https://dev.to/jochen/build-a-full-stack-translation-web-app-using-react-js-expressjs-typescript-part-1-free-video-1og</guid>
      <description>&lt;p&gt;In this video series, you will learn how to program a full-stack application consisting of a ReactJS frontend and an ExpressJS backend, as well as how to set up Docker and Docker Compose. We will be using the DeepL API that's freely available for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 1
&lt;/h2&gt;

&lt;p&gt;This first part will be setting up the Dockerfile, Docker-Compose, and env variables, as well as getting the DeepL API Key we will be needing later on.&lt;/p&gt;

&lt;h2&gt;
  
  
  For who is this Video Series?
&lt;/h2&gt;

&lt;p&gt;Feel free to follow along. This is specially targeted towards developers who are new to programming or people who wish to refresh their knowledge of the used technologies. Part of the series is explaining little things along the way that may prove quite useful.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UwK9FmHU5s0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;p&gt;The content for this part is as follows:&lt;/p&gt;

&lt;p&gt;00:00   - Intro&lt;br&gt;
00:50   - setup Dockerfile&lt;br&gt;
02:16   - setup Docker-Compose&lt;br&gt;
04:43   - setup ENV&lt;br&gt;
05:00   - Get API Key&lt;/p&gt;

&lt;p&gt;If you have any questions feel free to let me know here or inside the video&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>docker</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Automatically scan your Project Dependencies for Vulnerabilities using Docker, Jenkins, ... (Part 2/2)</title>
      <dc:creator>Jochen Rui</dc:creator>
      <pubDate>Wed, 12 Jan 2022 12:32:42 +0000</pubDate>
      <link>https://dev.to/jochen/automatically-scan-your-project-dependencies-for-vulnerabilities-using-docker-jenkins-part-22-5f4d</link>
      <guid>https://dev.to/jochen/automatically-scan-your-project-dependencies-for-vulnerabilities-using-docker-jenkins-part-22-5f4d</guid>
      <description>&lt;h2&gt;
  
  
  Recap of Part 1
&lt;/h2&gt;

&lt;p&gt;thanks for joining once again. In the &lt;a href="https://dev.to/jochen/automatically-scan-your-project-dependencies-for-vulnerabilities-using-docker-jenkins-part-12-4ieo"&gt;last post&lt;/a&gt; I introduced the OWASP Dependency-Check tool briefly and discussed it's increasing helpfulness in today's Software Engineering world due to increasing integration of open source &amp;amp; third party code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Today we will take a look at how we can easily integrate the Dependency-Check into our existing CI/CD Pipeline or how we can create a standalone Dockerfile to run the Dependency-Check on demand.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tools / Requirements
&lt;/h2&gt;

&lt;p&gt;As for knowledge it would be nice to have basic knowledge of how to run Dockerfiles but other than that there's not much required.&lt;/p&gt;

&lt;p&gt;As for tools we will use:&lt;br&gt;
Docker&lt;/p&gt;


&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;For the Setup we'll start with the Dockerfile and then discuss how we can run it standalone or integrate it in an existing CI/CD pipeline.&lt;/p&gt;
&lt;h3&gt;
  
  
  Dockerfile
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;####################
# FRONTEND DEPENDENCIES
####################

# we install the frontend dependencies to create a node_modules directory
FROM node:14 as frontend_dependencies
COPY path/to/package.json /frontend
WORKDIR /frontend
RUN npm i &amp;amp;&amp;amp; npm ci

####################
# INSTALL DEPENDENCY CHECK
####################

# we download the dependency-check zip &amp;amp; unzip it
FROM ubuntu:14.04 as dependency_check_install
RUN apt-get update \
    &amp;amp;&amp;amp; apt-get install -y wget unzip \
    &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*

WORKDIR /app

RUN wget https://github.com/jeremylong/DependencyCheck/releases/download/v6.5.2/dependency-check-6.5.2-release.zip \
    &amp;amp;&amp;amp; unzip dependency-check-6.5.2-release.zip \
    &amp;amp;&amp;amp; rm dependency-check-6.5.2-release.zip

####################
# RUN DEPENDENCY CHECK
####################

# we require a Java image here to run the dependency-check
FROM openjdk:18-alpine as dependency_check

# add yarn for dependency check to run without errors
RUN apk add yarn

# copy dependency-check from the previous stage
COPY --from=dependency_check_install /dependency-check /dependency-check

# copy frontend node modules from the previous stage
COPY --from=frontend_dependencies /frontend/node_modules /frontend/node_modules


# copy backend python files to be checked
COPY path/to/pythoncode/src /backend

# this line is optional. It's only necessary if you wish to run the Dependency-Check standalone
RUN /dependency-check/bin/dependency-check.sh --scan . --out ./report

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Dockerfile explanation
&lt;/h4&gt;

&lt;p&gt;As for JS code we need to initialize the node_modules from the package.json first&lt;/p&gt;

&lt;p&gt;As for the Python Backend code we need to copy the .py files over into the Docker container and use the experimental mode for Python.&lt;/p&gt;

&lt;p&gt;By separating these steps into multiple Docker Stages we minimize the final Docker image size by excluding things such as node, wget and unzip.&lt;/p&gt;
&lt;h4&gt;
  
  
  Run Dependency-Check
&lt;/h4&gt;

&lt;p&gt;The last line in the Dockerfile that's commented as Optional runs the Dependency-Check. If we want to run the Dependency-Check on demand outside a Pipeline we have to include this line here. It will scan all files in the directory and generate a report as HTML file.&lt;/p&gt;

&lt;p&gt;We can also specify another Output format such as JSON, CSV, ... This may be helpful if we have an automatic Analyser in place who can process JSON or CSV files.&lt;/p&gt;
&lt;h3&gt;
  
  
  Jenkinsfile
&lt;/h3&gt;

&lt;p&gt;If we want to include this Scan in a CI/CD Pipeline we would do it as follows in a Jenkinsfile example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;stage('Vulnerability Check') {
          stages {
            stage('OWASP dependency-check') {
              agent {
                dockerfile {
                  filename 'Dockerfile'
                }
              }
              steps {
                sh '/dependency-check/bin/dependency-check.sh --out ./report --scan /app --format HTML --format JSON --prettyPrint --enableExperimental --disableAssembly'
              }
              post {
                always {
                  archiveArtifacts "report/dependency-check-report.json"
                  archiveArtifacts "report/dependency-check-report.html"
                }
              }
            }
          }
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Jenkinsfile explanation
&lt;/h4&gt;

&lt;p&gt;We specify the Dockerfile to be run. Don't forget to remove the last optional line in the Dockerfile if you use this approach&lt;/p&gt;

&lt;p&gt;Then we specify the command to be executed. The flags --format specify the outut format. The --enableExperimental flag enables python scanning. &lt;/p&gt;

&lt;p&gt;Finally we archive the results, so that we can view them later on in Jenkins.&lt;/p&gt;




&lt;h2&gt;
  
  
  Output
&lt;/h2&gt;

&lt;p&gt;the generated .html will list the vulnerabilities and general information about the scan&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm047z6qywab5zw4zc7dn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm047z6qywab5zw4zc7dn.png" alt="report.html view"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank you for reading so far! :)
&lt;/h2&gt;

&lt;p&gt;That's it for the little guide. If you have questions or anything is unclear feel free to leave a comment.&lt;/p&gt;

&lt;p&gt;Also if you like this article or find it interesting be sure to leave a like or share it with people who might be interested in the topic :) It would help me a lot.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>security</category>
      <category>webdev</category>
      <category>docker</category>
    </item>
    <item>
      <title>Automatically scan your Project Dependencies for Vulnerabilities using Docker, Jenkins, ... (Part 1/2)</title>
      <dc:creator>Jochen Rui</dc:creator>
      <pubDate>Tue, 11 Jan 2022 10:10:26 +0000</pubDate>
      <link>https://dev.to/jochen/automatically-scan-your-project-dependencies-for-vulnerabilities-using-docker-jenkins-part-12-4ieo</link>
      <guid>https://dev.to/jochen/automatically-scan-your-project-dependencies-for-vulnerabilities-using-docker-jenkins-part-12-4ieo</guid>
      <description>&lt;h2&gt;
  
  
  What's a Dependency Check &amp;amp; what's the purpose?
&lt;/h2&gt;

&lt;p&gt;I think we can all agree that nowadays we heavily rely on open source and 3rd party libraries &amp;amp; frameworks. By doing so we leverage the knowledge of other professionals around the world and increase the time to market by not having to write everything from scratch by ourselves. In addition we don't have to maintain these supporting libraries ourselves which again saves us a lot of time and effort.&lt;/p&gt;

&lt;p&gt;While it sounds amazing to use publicly available code and it certainly does bring a ton of benefits, we have to take it with a tiny grain of salt. Reason being there's an inherent problem in using publicly available code: existing vulnerabilities in that code will also be included in our code. By doing so we inject their vulnerabilities into our application as well. While usually open-source projects handle their vulnerabilities well and fix them in a timely manner, these vulnerabilities are most often made publicly available for everyone to read about before they are fixed. Meaning that exploiters have the knowledge about these vulnerabilities as well and can use them to penetrate our application's security. In most cases the vulnerabilities are neglectable, but if they are severe risks it becomes crucial to handle them quickly.&lt;/p&gt;




&lt;h2&gt;
  
  
  OWASP Dependency-Check
&lt;/h2&gt;

&lt;p&gt;The Open Web Application Security Project (OWASP) is a non-profit organisation working on improving the security of software (&lt;a href="https://owasp.org/about/"&gt;https://owasp.org/about/&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The Dependency-Check is one of their projects. It's a Software Composition Analysis (SCA) tool that scans projects for publicly disclosed vulnerabilities.&lt;/p&gt;




&lt;h2&gt;
  
  
  What files / languages can be scanned for vulnerabilities?
&lt;/h2&gt;

&lt;p&gt;Dependency-Check can scan a multitude of file types &amp;amp; languages:&lt;/p&gt;

&lt;p&gt;Node.js, Python, Ruby Gemspec, Swift, OpenSSL, Nuspec, Nexus, Jar, CocoaPods, CMake, Central, Autoconf, Assembly and Archive&lt;/p&gt;




&lt;h2&gt;
  
  
  How does the Dependency-Check work?
&lt;/h2&gt;

&lt;p&gt;It scans the project for "evidence" which may lead to the identification of Dependencies using the Common Platform Enumeration (CPE). It's basically acts as a mapping and helps to identify the dependencies in our project. In addition to this Dependency-Check uses third party services such as NPM Audit API, OSS Index, retireJS and Bundler Audit as well.&lt;/p&gt;

&lt;p&gt;Once Dependency-Check found the name of a dependency it checks the Common Vulnerabilities and Exposures (CVE) catalog if there are any existing vulnerabilities. the CVE program identifies, defines &amp;amp; catalogs publicly disclosed cybersecurity vulnerabilities. Currently there are ~170.000 vulnerabilities listed in CVE. CVE also allows for manual search of vulnerabilities, simply by inputing the dependency name on their website (&lt;a href="https://cve.mitre.org/cve/search_cve_list.html"&gt;https://cve.mitre.org/cve/search_cve_list.html&lt;/a&gt;)&lt;/p&gt;




&lt;h3&gt;
  
  
  Thank you for reading so far! :)
&lt;/h3&gt;

&lt;p&gt;In the next part I'll show you how to add a Dockerfile to run a Dependency-Check on your existing project and also how to add the Dependency-Check as an automated step to your Jenkins Pipeline&lt;/p&gt;

&lt;p&gt;Also if you like this article or find it interesting be sure to leave a like or share it with people who might be interested in the topic :) It would help me a lot.&lt;/p&gt;

&lt;p&gt;Here's the link to the &lt;a href="https://dev.to/jochen/automatically-scan-your-project-dependencies-for-vulnerabilities-using-docker-jenkins-part-22-5f4d"&gt;second part&lt;/a&gt; :)&lt;/p&gt;

</description>
      <category>security</category>
      <category>webdev</category>
      <category>devops</category>
      <category>docker</category>
    </item>
    <item>
      <title>React E2E Testing made easy using Cypress and Jenkins</title>
      <dc:creator>Jochen Rui</dc:creator>
      <pubDate>Wed, 22 Sep 2021 06:50:19 +0000</pubDate>
      <link>https://dev.to/jochen/react-e2e-testing-made-easy-using-cypress-and-jenkins-42jm</link>
      <guid>https://dev.to/jochen/react-e2e-testing-made-easy-using-cypress-and-jenkins-42jm</guid>
      <description>&lt;h1&gt;
  
  
  What is End-To-End(E2E) Testing?
&lt;/h1&gt;

&lt;p&gt;The primary goal of E2E Testing is to test the Application from the user's perspective. Thus regarding the Application as a Black Box - ignoring the internal logic and only testing what the Users see. &lt;/p&gt;

&lt;h1&gt;
  
  
  Drawbacks of E2E Testing
&lt;/h1&gt;

&lt;p&gt;An error in the E2E Test Suite indicates that the User can't use the Application as intended. The problem is that we can't pinpoint the exact Line Of Code(LOC) that causes the error. Thus E2E Testing helps in finding significant errors but can't help in debugging them.&lt;/p&gt;

&lt;p&gt;On the famous Testing Pyramid, E2E Tests can be found on top of Component and Integration Tests. As such there should be Unit and Integration Tests first. These help in catching errors early and debugging, thus increasing the pace of development. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9fyph18vjmwcfbk1tvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9fyph18vjmwcfbk1tvo.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Benefits of E2E Testing
&lt;/h1&gt;

&lt;p&gt;E2E Tests are written in a way that resembles the User's way of operating our Application. As such E2E Tests gives great confidence in our Application by confirming that the key functionalities are working as intended from the User's point of view.&lt;/p&gt;

&lt;p&gt;In addition to this E2E Tests ideally don't rely on Implementation Details, as such they are more robust and written in a way where fixing or updating them is fast and easy. &lt;/p&gt;

&lt;h1&gt;
  
  
  Practical Example
&lt;/h1&gt;

&lt;p&gt;Now to the fun part: Code!&lt;/p&gt;

&lt;p&gt;First we have to install Cypress&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install cypress --save-dev
or
yarn add cypress --dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we can create a simple cypress.json configfile in the root directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    // specify the baseUrl from which we 
    // serve our applications in the test environment
    "baseUrl": "http://localhost:3000",

    // depends on project: allows accessing shadow dom without calling .shadow()
    "includeShadowDom": true,

    // optional: only necessary cypress component testing
    // not needed if all we do is e2e testing 
    "component": {
        "testFiles": "**/*.spec.{js,ts,jsx,tsx}",
        "componentFolder": "src"
    },
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if our project is written in typescript we might want to add a tsconfig in the cypress subdirectory that extends our main tsconfig&lt;/p&gt;

&lt;h3&gt;
  
  
  cypress/tsconfig.json
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "compilerOptions": { "types": ["cypress"] },
  "extends": "../tsconfig.json",
  "include": ["integration/*.ts", "support/*.ts", "../node_modules/cypress"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Writing Tests
&lt;/h2&gt;

&lt;p&gt;After we finished the basic setup and installation we can now start writing tests.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe("Sample Test Suite", () =&amp;gt; {
  beforeEach(() =&amp;gt; {
    // intercept outgoing HTTP Requests by defining the endpoint and mocked response
    cy.intercept("GET", "/some_endpoint", {
      statusCode: 200,
      body: {"a":1},
    });
  });

  it("sample test", () =&amp;gt; {
    // uses baseUrl defined in cypress.json configuration
    cy.visit("/landing-page");
    // access DOM Nodes via e.g. class, id, data-test-id
    // &amp;amp; interact with DOM
    cy.get('[data-test-id="add-button"]').click();
    cy.get(".some_class").should("exist");
  });
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the example above we intercept Http Requests our application makes to the /some_endpoint endpoint. Thus we mock the backend and can run our tests without starting up a backend instance.&lt;/p&gt;

&lt;p&gt;Now we can run the tests and see if our application works as intended. For this we can choose to run it with a UI and open chrome instance for easier debugging OR we can run it headless, e.g. for a quick run in CLI or as integrated step in our CI Pipeline in e.g. Jenkins, Azure Pipeline,... &lt;/p&gt;

&lt;h2&gt;
  
  
  Run Cypress in Dev Environment
&lt;/h2&gt;

&lt;p&gt;To execute Cypress with an UI and controlled Chrome instance we can add this script to package.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"cy:open": "node_modules/.bin/cypress open",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;adding this allows us to easily start the cypress UI in the terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run cy:open
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Jenkins Integration
&lt;/h2&gt;

&lt;p&gt;To integrate Cypress into our Jenkins Pipeline, we can add these scripts to package.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"cy:run": "node_modules/.bin/cypress run",
"ci:e2e": "start-server-and-test start http://localhost:3000 cy:run"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In addition we need to install start-server-and-test for this solution&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --save-dev start-server-and-test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will ensure that our server is started before we try running our E2E Tests. &lt;/p&gt;

&lt;p&gt;Now that all the preparations are done, we can add a step to our Jenkinsfile.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sh script: 'cd frontend; npm run ci:e2e'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now when a Jenkins Build is triggered we will see a new stage in our Pipeline that displays a report of our E2E Tests. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2guukogff1r2oebv7fgk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2guukogff1r2oebv7fgk.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Additional Information and Troubleshooting:
&lt;/h1&gt;

&lt;p&gt;Depending on the Docker Image used, we may need to install additional OS specific dependencies. For this we can add a DockerFile step&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Install cypress OS dependencies
RUN apt-get install -qy \
    libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4  \
    libnss3 libxss1 libasound2 libxtst6 xauth xvfb procps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>react</category>
      <category>frontend</category>
      <category>testing</category>
      <category>cypress</category>
    </item>
  </channel>
</rss>
