ruby-on-rails - Rails 码头化:有什么建议吗?
问题描述
我按照https://medium.com/soulmates-ai/running-a-rails-app-with-webpacker-and-docker-8d29153d3446将我的 Rails 项目适应 Docker,使用 Webpacker 和 Rails 作为单独的服务。
作为一个菜鸟,我会很高兴有人能给我一些时间来回顾这些行,并告诉我我是否做得正确:)
Dockerfile
FROM ruby:2.5.5-slim
ARG PRECOMPILEASSETS
ARG RAILS_ENV
ENV RAILS_ENV ${RAILS_ENV}
RUN apt-get update && apt-get install -y curl gnupg
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgdg.list
RUN curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get -y update && \
apt-get install --fix-missing --no-install-recommends -qq -y \
build-essential \
vim \
wget gnupg \
git-all \
curl \
ssh \
postgresql-client-10 libpq5 libpq-dev -y && \
wget -qO- https://deb.nodesource.com/setup_9.x | bash - && \
apt-get install -y nodejs && \
wget -qO- https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && \
apt-get install yarn && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN gem install bundler
#Install gems
RUN mkdir /gems
WORKDIR /gems
COPY Gemfile .
COPY Gemfile.lock .
RUN bundle install
ARG INSTALL_PATH=/opt/beweeg
ENV INSTALL_PATH $INSTALL_PATH
WORKDIR $INSTALL_PATH
COPY . .
# Precompile assets (or not)
RUN docker/potential_asset_precompile.sh $PRECOMPILEASSETS
码头工人-compose.yml
version: '3.0'
services:
db:
image: postgres:11-alpine
ports:
- 5433:5432
environment:
POSTGRES_PASSWORD: postgres
webpacker:
image: ${DOCKER_IMAGE_NAME-beweeg}
command: ["./docker/start_webpack_dev.sh"]
volumes:
- .:/opt/beweeg:cached
ports:
- 3035:3035
app:
image: ${DOCKER_IMAGE_NAME-beweeg}
build:
context: .
args:
- PRECOMPILEASSETS=NO
- RAILS_ENV=development
environment:
- RAILS_ENV=development
- APP_HOST=localhost:3000
- SMTP_USERNAME
- SMTP_PWD
- SMTP_DOMAIN
- SMTP_ADDRESS
- SMTP_PORT
- SMTP_AUTHENTICATION
- SMTP_ENABLE_STARTTLS_AUTO
links:
- db
- webpacker
ports:
- 3000:3000
command: ["./docker/wait_for_it.sh", "db:5432", "--", "./docker/start_rails.sh"]
volumes:
- .:/opt/beweeg:cached
.dockerignore
.git
.gitignore
*.md
.dockerignore
.gitlab-ci.yml
docker-compose.*
Dockerfile
log/*
node_modules/*
public/assets/*
storage/*
public/js/*
public/js-test/*
tmp/*
其余的应该和Soulmates的相关文章中的完全一样……你怎么看?注意:这个项目是私人的,这就是为什么我不能完全分享它......对不起。如果需要更多资源,请告诉我,我会尝试制作一个演示假项目:)
提前谢谢
解决方案
推荐阅读
- angular - 为什么 MatDialog 组件中的 Angular Form 非常慢?
- debian - DEBChange (DCH),修复未记录的行为
- php - 网站中断并显示消息“警告:“继续”定位开关等同于“中断”。您的意思是使用“继续 2”吗?
- r - 将变量的特定值从R输出到word文档/ power point
- android - 自定义弹出菜单样式
- python - 在 Python 中调用 Microsoft Access 模块。将多个 Access 表合并为 1 个单表
- xamarin.forms - tesseract 测试 xamarin 错误输出 xamarin 形式
- java - 如果 Apache Camel 在 Centos 的 Crontab 中运行,则无法访问环境变量
- c++ - 从属名称的模板消歧器
- python - 如何使用来自两个字典的数据创建散点图?