rails 6을 사용하여 Docker 개발 환경을 구축했습니다.
개발 환경
나에 대해
문제점
rails6 개발 환경을 Docker에서 구축하기 위해,
1. Dockerdile 및 docker-compose.yml 파일을 만듭니다.
2. 터미널에서
docker-compose up
명령을 실행합니다.3. 새로운 터미널에서
docker exec -it
실행. 컨테이너 안으로 들어간다.4. 그러나 webpacker가 설치되어 있지 않으면 오류가 발생합니다.
무무무, 무슨 일이야. .
Dockerfile
qiita.rb
FROM ruby:2.6.5-alpine AS builder
RUN apk --update add --virtual build-dependencies \
build-base \
curl-dev \
mysql-dev \
linux-headers
RUN gem install bundler
WORKDIR /tmp
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
ENV BUNDLE_JOBS=4
RUN bundle install
RUN apk del build-dependencies
FROM ruby:2.6.5-alpine
RUN apk --update add \
bash \
nodejs \
mariadb-dev \
tzdata \
yarn
RUN gem install bundler
WORKDIR /tmp
COPY --from=builder /usr/local/bundle /usr/local/bundle
ENV APP_HOME /myapp
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
COPY . $APP_HOME
docker-compose.yml
qiita.rb
version: '3'
services:
mysql:
image: mysql:8.0.17
command: --default-authentication-plugin=mysql_native_password
volumes:
- "./mysql-data:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: root
app:
build: .
command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- ".:/app"
ports:
- "3000:3000"
tty: true
depends_on:
- mysql
working_dir: "/app"
해결 방법
비슷한 작업을 터미널에서 실행합니다. . . 마침내 성공했습니다!
qiita.rb
version: '3'
services:
mysql:
image: mysql:8.0.17
command: --default-authentication-plugin=mysql_native_password
volumes:
- "./mysql-data:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: root
app:
build: .
command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- ".:/app"
ports:
- "3000:3000"
tty: true
depends_on:
- mysql
working_dir: "/app"
webpacker:
build: .
command: bundle exec bin/webpack-dev-server
마지막으로
처음 Docker에서의 환경 구축, 고생했지만 일단 이것으로 성공했습니다. 여기에서 앱 만들기를 처음 갑니다! !
또, 이번의 순서로 「그 밖에도 이런 방법 있어!」, 「여기 잘못하고 있어!」라든가 여러 선배님의 지적도 기다리고 있습니다!
끝까지 봐 주셔서 감사합니다.
Reference
이 문제에 관하여(rails 6을 사용하여 Docker 개발 환경을 구축했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uechikohei/items/94050b7898a515b21f67텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)