Всем привет 👋🏻
Сегодня я хочу поделиться с вами тем, как мы можем наблюдать за изменениями в Rust с помощью Docker Containers. Это продолжение статьи Горячая перезагрузка в Rust с помощью Cargo Watch
- Прежде всего, мы должны создать DockerFile в корневом каталоге проекта и включить приведенный ниже код.
# Using official rust base image
FROM rust:alpine3.16
# Set the application directory
WORKDIR /app
# Install musl-tools to make many crates compile successfully
RUN apk add --no-cache musl-dev
# Install cargo-watch
RUN cargo install cargo-watch
# Copy the files to the Docker image
COPY ./ ./
Dockerfile – это обычный текстовый файл, содержащий инструкции, которые Docker будет использовать для создания образа. "узнать больше"
2. T̶h̶e̶ ̶f̶o̶l̶l̶o̶w̶i̶n̶g̶ ̶s̶t̶e̶p̶ ̶i̶s̶ ̶t̶o̶ ̶c̶r̶e̶a̶t̶e̶ ̶t̶h̶e̶ ̶i̶m̶a̶g̶e̶ ̶u̶s̶i̶n̶g̶ ̶t̶h̶e̶ ̶c̶o̶m̶m̶a̶n̶d̶ ̶b̶e̶l̶o̶w̶.̶
docker build -t rust-observable-image .
Теперь образ с зависимостью от груза создан.
Затем вы должны увидеть на своем терминале ответ, подтверждающий, что образ был успешно создан.[+] Building 430.0s (10/10) FINISHED
Мы можем убедиться, что образ создан.
docker images
3. Следующим шагом будет запуск контейнера и запуск команды «cargo watch» внутри контейнера, но мы собираемся сделать что-то более автоматизированное с помощью Docker Compose. Поэтому нам не нужно выполнять шаг 2, потому что когда мы запускаем контейнер с помощью Docker Compose, он запускается автоматически.
Поэтому нам нужно создать файл docker-compose.yml внутри корневого каталога проекта и добавить следующие инструкции:
version: "3.9" services: app: build: . container_name: "cargo-watch-example" volumes: - .:/app command: sh -c "cargo watch -x run"
4. Последний шаг — запуск контейнера с помощью Docker Compose.
docker compose up
С этого момента вы сможете вносить изменения в свой проект и наблюдать за изменениями из своего контейнера.
Если вам нравится мой контент и вы хотите поддержать мою работу, вы можете подарить мне чашечку кофе ☕️ 🥰
Следуй за мной в
- Твиттер: @devjcastro
- Linkedin: dev-jorgecastro