Docker

Пример файла DockerFile, который нужен, чтобы сбилдить image (образ) докера:

1) Вариант для бекенда (koa):

FROM node:14

WORKDIR /app

COPY package*.json ./

COPY . /app

RUN npm install



ARG PORT
ARG DB_NAME
ARG DB_USER
ARG DB_PASS
ARG DB_HOST
ARG SECRET_KEY
ARG SECRET_KEY_REFRESH
ARG accessKeyId
ARG secretAccessKey
ARG userPhotoFolder
ARG bucketName


ENV PORT=$PORT
ENV DB_NAME=$DB_NAME
ENV DB_USER=$DB_USER
ENV DB_PASS=$DB_PASS
ENV DB_HOST=$DB_HOST
ENV SECRET_KEY=$SECRET_KEY
ENV SECRET_KEY_REFRESH=$SECRET_KEY_REFRESH
ENV accessKeyId=$accessKeyId
ENV secretAccessKey=$secretAccessKey
ENV userPhotoFolder=$userPhotoFolder
ENV bucketName=$bucketName


EXPOSE $PORT

CMD ["npm", "start"]




2) Для фронтенда (Vue):

FROM node:lts-alpine as build-stage

WORKDIR /app
COPY package*json ./
RUN npm install
COPY . /app

ARG PORT
ARG VUE_APP_API_URL

ENV PORT=$PORT
ENV VUE_APP_API_URL=$VUE_APP_API_URL

RUN npm run build

FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY ./nginx.conf /etc/nginx/conf.d

EXPOSE $PORT
CMD ["nginx", "-g", "daemon off;"]

Здесь мы уже не просто запускаем скрипт, а, во-первых, в качестве среды указываем легковесный линукс lts-alpine вместо node, во-вторых, билдим наше приложение и папку с получеными (/app/dist) в результате файлами копируем в другую папку (/usr/share/nginx/html), которая будет запускаться при помощи nginx на сервере. И в-третьих, командой

Команды:

Создать образ:

docker build -t koa:latest .

Где, koa – название будущего имеджа.

Запушить образ:

Чтобы запушить на aws сбилдженый image, надо в сервисе Elastic Container Service создать репозиторий, после чего нажать на View push commands и воспользоваться командами, которые будут отображены в модальном окне.

Push на aws

Список образов:

docker images

Запущенные образы:

docker ps

Запустить образ:

docker run nameImage

С указанием портов (–rm удалит из памяти контейнер после размонтирования):

docker run docker run -it -d -p 3000:3000 --rm koa

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *