Я настраиваю новый dockerfile и docker-compose.yml.Ниже я покажу сначала мою файловую структуру с рельсами, и я хочу использовать новый .dockerignore для игнорирования node_modules , .git .
мой докерверсия : версия Docker 18.09.0, сборка 4d60db4
my docker-compose.yml , чем я пользуюсь v3
Корневой каталог
- Gemfile
- app
- bin
- cable
- db
- config
- lib
- node_modules
- public
- vendor
- docker
- app
- Dockerfile
- .git
- .gitignore
- .dockerignore
- docker-compose.yml
docker / app / Dockerfile
FROM ruby:2.3.1
ARG RAILS_ROOT
RUN mkdir -p $RAILS_ROOT
WORKDIR $RAILS_ROOT
COPY . .
docker-compose.yml
version: '3'
services:
app:
build: &build_core
context: .
dockerfile: ./docker/app/Dockerfile
args:
- APP_NAME=myappname
- RAILS_ROOT=/var/www/${APP_NAME}_web
- RAILS_ENV=development
- RAILS_SERVE_STATIC_FILES=true
- RAILS_LOG_TO_STDOUT=true
- BUNDLE_OPTIONS=
- NPM_OPTIONS=
image: custom-web:1.0
container_name: app
volumes:
- .:/var/www/${APP_NAME}_web
env_file:
- .env
environment:
RAILS_ROOT: "/var/www/${APP_NAME}_web"
.dockerignore
.git/
node_modules/
Я построил свое изображение с помощью следующей команды
docker-compose build app
Когда я смотрю наконтейнер, файлы файлов все еще копируются в мой контейнер
возможно, это контекст или куда я должен поместить свой .dockerignore, также я помещаю свой .dockerignore в docker / app / .dockerignore, и у меня та же проблема.