1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Specify the base Docker image. You can read more about
- # the available images at https://crawlee.dev/docs/guides/docker-images
- # You can also use any other image from Docker Hub.
- FROM apify/actor-node-playwright-chrome:18 AS builder
- # Copy just package.json and package-lock.json
- # to speed up the build using Docker layer cache.
- COPY --chown=myuser package*.json ./
- # Install all dependencies. Don't audit to speed up the installation.
- RUN npm install --include=dev --audit=false
- # Next, copy the source files using the user set
- # in the base image.
- COPY --chown=myuser . ./
- # Install all dependencies and build the project.
- # Don't audit to speed up the installation.
- RUN npm run build
- # Create final image
- FROM apify/actor-node-playwright-chrome:18
- # Copy only built JS files from builder image
- COPY --from=builder --chown=myuser /home/myuser/dist ./dist
- # Copy just package.json and package-lock.json
- # to speed up the build using Docker layer cache.
- COPY --chown=myuser package*.json ./
- # Install NPM packages, skip optional and development dependencies to
- # keep the image small. Avoid logging too much and print the dependency
- # tree for debugging
- RUN npm --quiet set progress=false \
- && npm install --omit=dev --omit=optional \
- && echo "Installed NPM packages:" \
- && (npm list --omit=dev --all || true) \
- && echo "Node.js version:" \
- && node --version \
- && echo "NPM version:" \
- && npm --version
- # Install Python and required dependencies for the Python module
- RUN apt-get update \
- && apt-get install -y python3 python3-pip \
- && pip3 install beautifulsoup4 markdownify
- # Copy the Python script
- COPY --chown=myuser conv_html_to_markdown.py ./
- # Next, copy the remaining files and directories with the source code.
- # Since we do this after NPM install, quick build will be really fast
- # for most source file changes.
- COPY --chown=myuser . ./
- # Run the image. If you know you won't need headful browsers,
- # you can remove the XVFB start script for a micro perf gain.
- CMD ./start_xvfb_and_run_cmd.sh && npm run start:prod --silent
|