Spaces:
Runtime error
Runtime error
File size: 8,398 Bytes
0c66405 d189e65 0c66405 9f11d1f 4b1b0cf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# 5 Terraform commands you should know:
1. terraform init: https://developer.hashicorp.com/terraform/cli/commands/init
2. terraform plan: https://developer.hashicorp.com/terraform/cli/commands/plan
3. terraform apply: https://developer.hashicorp.com/terraform/cli/commands/apply
4. terraform import: https://developer.hashicorp.com/terraform/cli/import
5. terraform destroy: https://developer.hashicorp.com/terraform/cli/commands/destroy
# Azure Resources TF Management:
| Step | Title | Tasks |
|------|--------------------|-------------------------------------------------------------------------------------------------------------|
| 1 | PreReqs | Terraform installed, Azure cloud account, VSCode extensions, Docker, ACR, Deploy and Test |
| 2 | Demo | Create resources in Azure cloud |
| 3 | | Create terraform files for those resources |
| 4 | | Run terraform apply |
| 5 | | Run terraform import for each resource |
| 6 | | Verify terraform state |
| 7 | | Perform terraform destroy to clean up resources |
# Docker and Linux SOAR Setup:
| Step | Title | Tasks |
|------|--------------------|-------------------------------------------------------------------------------------------------------------|
| 1 | PreReqs | Docker, ACR, Deploy and Test |
| 2 | Demo | Modify Dockerfile to start and configure resources |
| 3 | | Modify Docker base image to remove old apts w security issuesand cert issues |
| 4 | | Modify Docker base image to configure soar and python components including packages, requirements | |
| 5 | | Run Docker push, deploy to ACR and test |
Give me an analysis on what this dockerfile does: FROM nvidia/cuda:11.3.1-base-ubuntu20.04
ENV DEBIAN_FRONTEND=noninteractive \
TZ=Europe/Paris
# Remove any third-party apt sources to avoid issues with expiring keys.
# Install some basic utilities
RUN rm -f /etc/apt/sources.list.d/*.list && \
apt-get update && apt-get install -y \
curl \
ca-certificates \
sudo \
git \
git-lfs \
zip \
unzip \
htop \
bzip2 \
libx11-6 \
build-essential \
libsndfile-dev \
software-properties-common \
&& rm -rf /var/lib/apt/lists/*
ARG BUILD_DATE
ARG VERSION
ARG CODE_RELEASE
RUN \
echo "**** install openvscode-server runtime dependencies ****" && \
apt-get update && \
apt-get install -y \
jq \
libatomic1 \
nano \
net-tools \
netcat && \
echo "**** install openvscode-server ****" && \
if [ -z ${CODE_RELEASE+x} ]; then \
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/gitpod-io/openvscode-server/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]' \
| sed 's|^openvscode-server-v||'); \
fi && \
mkdir -p /app/openvscode-server && \
curl -o \
/tmp/openvscode-server.tar.gz -L \
"https://github.com/gitpod-io/openvscode-server/releases/download/openvscode-server-v${CODE_RELEASE}/openvscode-server-v${CODE_RELEASE}-linux-x64.tar.gz" && \
tar xf \
/tmp/openvscode-server.tar.gz -C \
/app/openvscode-server/ --strip-components=1 && \
echo "**** clean up ****" && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
COPY root/ /
RUN add-apt-repository ppa:flexiondotorg/nvtop && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends nvtop
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
apt-get install -y nodejs && \
npm install -g configurable-http-proxy
# Create a working directory
WORKDIR /app
# Create a non-root user and switch to it
RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
&& chown -R user:user /app
RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
USER user
# All users can use /home/user as their home directory
ENV HOME=/home/user
RUN mkdir $HOME/.cache $HOME/.config \
&& chmod -R 777 $HOME
# Set up the Conda environment
ENV CONDA_AUTO_UPDATE_CONDA=false \
PATH=$HOME/miniconda/bin:$PATH
RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh \
&& chmod +x ~/miniconda.sh \
&& ~/miniconda.sh -b -p ~/miniconda \
&& rm ~/miniconda.sh \
&& conda clean -ya
WORKDIR $HOME/app
#######################################
# Start root user section
#######################################
USER root
# User Debian packages
## Security warning : Potential user code executed as root (build time)
RUN --mount=target=/root/packages.txt,source=packages.txt \
apt-get update && \
xargs -r -a /root/packages.txt apt-get install -y --no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
RUN --mount=target=/root/on_startup.sh,source=on_startup.sh,readwrite \
bash /root/on_startup.sh
#######################################
# End root user section
#######################################
USER user
# Python packages
RUN --mount=target=requirements.txt,source=requirements.txt \
pip install --no-cache-dir --upgrade -r requirements.txt
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
COPY --chown=user . $HOME/app
RUN chmod +x start_server.sh
ENV PYTHONUNBUFFERED=1 \
GRADIO_ALLOW_FLAGGING=never \
GRADIO_NUM_PORTS=1 \
GRADIO_SERVER_NAME=0.0.0.0 \
GRADIO_THEME=huggingface \
SYSTEM=spaces \
SHELL=/bin/bash
EXPOSE 7860 3000
CMD ["./start_server.sh"]
This Dockerfile describes the steps to create a Docker image with an environment that includes various tools, libraries, and applications. The image is based on the nvidia/cuda:11.3.1-base-ubuntu20.04 image, which is a Ubuntu 20.04 base image with NVIDIA CUDA 11.3.1 libraries pre-installed. The steps in this Dockerfile can be broken down as follows:
Set environment variables:
Set the timezone to Europe/Paris
Set the Debian frontend to noninteractive mode for silent installations
Remove third-party apt sources to avoid issues with expiring keys.
Install basic utilities and libraries using apt-get.
Install the OpenVSCode-Server, which is an open-source version of VSCode Server, allowing you to run a remote VSCode environment.
Add the flexiondotorg/nvtop repository and install the NVTop GPU monitoring tool.
Install Node.js 14.x and the configurable-http-proxy package.
Create a non-root user named user and set appropriate permissions.
Set up the Conda environment with Miniconda3 and Python 3.9.
Install user-specified Debian packages by reading from a packages.txt file.
Execute a script named on_startup.sh as the root user.
Switch back to the non-root user user.
Install Python packages specified in a requirements.txt file.
Copy the current directory contents into the container at $HOME/app.
Set environment variables for Gradio and other configurations.
Expose ports 7860 and 3000.
Set the CMD to execute the start_server.sh script when the container starts.
This Dockerfile sets up a development environment with NVIDIA CUDA support, a Conda environment, OpenVSCode-Server, NVTop, and various other utilities. It also installs user-specified Debian and Python packages, and runs a user-specified script at startup. The image is prepared to run a server using Gradio, a library for creating web-based UIs for ML models, and exposes two ports for external communication. |