在Ubuntu上使用docker-compose

我正在使用Ubuntu操作系统来运行Rails 7。

Gemfile is a file used in Ruby programming language.

gem "rails", "~> 7.0.6"

Dockerfile 只需要一个选项来用中文进行表述:

FROM ruby:3.1
# 公式→https://hub.docker.com/_/ruby

# 在 Rails 7 中,Webpacker 不再作为标准配置内置,因此无需安装 yarn 或 nodejs
# Ruby3.1 映像因为在使用 Bundler 2.3.7 版时失效,追加gem版本。
ARG RUBYGEMS_VERSION=3.3.20

# RUN:任意执行命令
RUN mkdir /myapp

# WORKDIR:指定工作目录
WORKDIR /myapp

# COPY:指定复制的来源和目的地。
#将本地 Gemfile 复制到容器中的 /app/Gemfile COPY Gemfile /myapp/Gemfilee

COPY Gemfile.lock /myapp/Gemfile.lock

# 上传RubyGems
RUN gem update --system ${RUBYGEMS_VERSION} && \
    bundle install

COPY . /myapp

docker-compose.yml 可以被派源码编写为一个Docker环境配置文件。

version: '3'
services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
    ports:
      - '3306:3306'
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - mysql-data:/var/lib/mysql
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
    stdin_open: true
    tty: true
volumes:
  mysql-data:
    driver: local

命令

docker-compose run --rm web rails new . --force --database=mysql
广告
将在 10 秒后关闭
bannerAds