Phoenix 服务器不呈现 css 和 Docker 的图像
Phoenix server doesn't render css and images with Docker
我是 Elixir 和 Phoenix 的新手,必须在 CI/CD 环境中工作 我正在尝试弄清楚如何将 Phoenix 与 Docker 一起使用。
我尝试了各种教程和视频,其中很多不起作用,但那些起作用的人得到了相同的结果。
Phoenix 服务器似乎没有找到一些资源(assets 文件夹?)。
但在我的 Docker 文件中,我正在复制整个应用程序文件夹,并且我可以通过附加到它来确认 /assets 在容器中。
Docker文件:
FROM elixir:alpine
RUN apk add --no-cache build-base git
WORKDIR /app
RUN mix local.hex --force && \
mix local.rebar --force
COPY . .
RUN mix do deps.get, deps.compile
CMD ["mix", "phx.server"]
Docker-撰写
version: '3.6'
services:
db:
environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_HOST_AUTH_METHOD: trust
image: 'postgres:11-alpine'
restart: always
volumes:
- 'pgdata:/var/lib/postgresql/data'
web:
build: .
depends_on:
- db
environment:
MIX_ENV: dev
env_file:
- .env
ports:
- '4000:4000'
volumes:
- .:/app
volumes:
pgdata:
我创建容器和运行服务器的步骤:
docker-compose build
docker-compose run web mix ecto.create
docker-compose up
数据库在db容器中创建成功。
这里会发生什么?
对不起,如果它很简单,我有一段时间没有使用 Docker,我仍然没有完全理解 Phoenix 样板文件。
如果你知道一些关于 Docker 和 CI/CD pipelines with Phoenix 的好资源,我也很感激,所以我可以研究它。
您还需要构建资产。 npm install --prefix assets
这需要在 mix deps.get
之后完成,但可以在 mix deps.compile
之后完成,这并不是真正需要的。您可以在 mix deps.get
之后启动服务器,它会自动编译 deps 和您的应用程序。
我是 Elixir 和 Phoenix 的新手,必须在 CI/CD 环境中工作 我正在尝试弄清楚如何将 Phoenix 与 Docker 一起使用。
我尝试了各种教程和视频,其中很多不起作用,但那些起作用的人得到了相同的结果。
Phoenix 服务器似乎没有找到一些资源(assets 文件夹?)。
但在我的 Docker 文件中,我正在复制整个应用程序文件夹,并且我可以通过附加到它来确认 /assets 在容器中。
Docker文件:
FROM elixir:alpine
RUN apk add --no-cache build-base git
WORKDIR /app
RUN mix local.hex --force && \
mix local.rebar --force
COPY . .
RUN mix do deps.get, deps.compile
CMD ["mix", "phx.server"]
Docker-撰写
version: '3.6'
services:
db:
environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_HOST_AUTH_METHOD: trust
image: 'postgres:11-alpine'
restart: always
volumes:
- 'pgdata:/var/lib/postgresql/data'
web:
build: .
depends_on:
- db
environment:
MIX_ENV: dev
env_file:
- .env
ports:
- '4000:4000'
volumes:
- .:/app
volumes:
pgdata:
我创建容器和运行服务器的步骤:
docker-compose build
docker-compose run web mix ecto.create
docker-compose up
数据库在db容器中创建成功。 这里会发生什么?
对不起,如果它很简单,我有一段时间没有使用 Docker,我仍然没有完全理解 Phoenix 样板文件。
如果你知道一些关于 Docker 和 CI/CD pipelines with Phoenix 的好资源,我也很感激,所以我可以研究它。
您还需要构建资产。 npm install --prefix assets
这需要在 mix deps.get
之后完成,但可以在 mix deps.compile
之后完成,这并不是真正需要的。您可以在 mix deps.get
之后启动服务器,它会自动编译 deps 和您的应用程序。