Приготовьтесь раскрыть волшебство контейнеров с помощью Docker! В этом руководстве мы отправим вас в безумное путешествие по мистическому миру создания и публикации простого приложения формы входа React. Пристегнитесь, возьмите свою волшебную палочку (ладно, может быть, просто ваш терминал), и начнем!
Прежде чем мы начнем, давайте удостоверимся, что на вашем компьютере установлен Docker. Если у вас не установлен Docker, выполните следующие действия, чтобы запустить его:
- Перейдите на сайт Docker (https://www.docker.com/) и нажмите кнопку Получить Docker.
- Выберите свою операционную систему (Windows, Mac или Linux) и следуйте инструкциям по загрузке и установке Docker.
- После завершения установки откройте терминал или командную строку и введите
docker version
, чтобы убедиться, что Docker установлен правильно.
Вот и все! Теперь вы готовы начать использовать Docker и создавать контейнеры для своих приложений.
- Создайте приложение React. Если у вас уже есть приложение React, этот шаг можно пропустить. В противном случае создайте простое приложение React с формой входа.
- Создайте Dockerfile. Dockerfile — это скрипт, содержащий инструкции по созданию образа Docker. Он указывает базовый образ, устанавливает переменные среды, копирует файлы и запускает команды. Создайте файл Dockerfile в корневом каталоге вашего приложения React с помощью текстового редактора.
Содержимое Dockerfile должно быть следующим:
# Use the node:lts-alpine image as the base image FROM node:lts-alpine # Set the NODE_ENV environment variable to "production" ENV NODE_ENV=production # Set the working directory WORKDIR /usr/src/app # Copy the package.json, package-lock.json, and npm-shrinkwrap.json files to the working directory COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"] # Install the dependencies RUN npm install --production --silent && mv node_modules ../ # Copy the remaining files to the working directory COPY . . # Expose port 3000 EXPOSE 3000 # Set the owner of the files to the "node" user RUN chown -R node /usr/src/app # Run the commands as the "node" user USER node # The default command to run when the container starts CMD ["npm", "start"]
Вышеупомянутый Dockerfile устанавливает среду и конфигурацию для вашего приложения React.
Он начинается с базового образа node:lts-alpine, устанавливает для переменной среды NODE_ENV значение «production», устанавливает рабочий каталог и копирует необходимые файлы в рабочий каталог.
Затем он запускает команду npm install для установки зависимостей, предоставляет порт 3000, назначает владельца файлов пользователю «node» и устанавливает команду по умолчанию «npm start».
Создание образа Docker. Чтобы создать образ Docker, выполните следующую команду в терминале в корневом каталоге вашего приложения React:
docker build -t react-app .
«.» в конце команды указывает текущую директорию в качестве контекста сборки, где находится Dockerfile. Параметр «-t» позволяет указать имя и тег для изображения. В этом случае мы называем изображение «react-app».
Запуск контейнера Docker. После создания образа Docker вы можете запустить контейнер из образа с помощью следующей команды:
docker run -p 3000:3000 react-app
Опция -p сопоставляет порт хоста 3000 с портом контейнера 3000. Это означает, что вы сможете получить доступ к приложению React на http://localhost:3000.
Публикация образа в Docker Hub
Наконец, мы можем опубликовать образ в Docker Hub, чтобы другие могли легко его запустить. Во-первых, нам нужно пометить образ именем, которое включает имя пользователя Docker Hub и имя репозитория:
docker tag react-app <docker-hub-username>/<repository-name>:<tag>
Замените <docker-hub-username>
, <repository-name>
и <tag>
соответствующими значениями.
Затем мы можем отправить образ в Docker Hub с помощью следующей команды:
docker push <docker-hub-username>/<repository-name>:<tag>
Вот и все! Теперь у вас есть работающий контейнер Docker для вашего приложения React, и вы можете легко поделиться им с другими.
Бонус:
Если вы столкнулись с ошибкой, например:
failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials
вы можете исправить это, выполнив следующие две команды:
export DOCKER_BUILDKIT=0 export COMPOSE_DOCKER_CLI_BUILD=0
Заключение:
Docker похож на волшебный чемодан, который может заставить ваши приложения работать как шарм, куда бы вы ни отправились. Используя Dockerfile
в качестве книги заклинаний, вы можете произнести заклинание и создать зачарованный образ, который будет плавно работать где угодно, не беспокоясь о каких-либо темных силах (например, о настройке окружающей среды), которые мешают. Шаги, которые мы предприняли в этой статье, были похожи на путешествие волшебника, где мы создали простое приложение React, сварили образ Docker, вызвали контейнер и, наконец, опубликовали образ в Docker Hub для всеобщего использования. Так что хватайте свою палочку и начинайте свое путешествие в Docker уже сегодня!
Помните: «Успешные люди делают то, чего неудачники делать не хотят. Не желайте, чтобы было легче, желайте, чтобы вы были лучше».
Спасибо, что нашли время, чтобы прочитать это руководство, и мы надеемся, что оно помогло вам начать работу с Docker. Продолжайте программировать и никогда не переставайте учиться!