cross-posted from: https://lemmy.world/post/226995
Hi guys, I am trying to bring a lemmy instance up but I have no idea why it freezes on "building lemmy"
This is what I get: https://i.imgur.com/GjcHPkd.png
and when I check my
$ docker images
https://i.imgur.com/wIUw54R.pngThis is my docker-compose.yml for refenrece:
version: "3.7" x-logging: &default-logging driver: "json-file" options: max-size: "50m" max-file: 4 networks: # communication to web and clients lemmyexternalproxy: # communication between lemmy services lemmyinternal: driver: bridge internal: true services: proxy: image: nginx:1-alpine networks: - lemmyinternal - lemmyexternalproxy ports: # actual and only port facing any connection from outside # Note, change the left number if port 1236 is already in use on your system # You could use port 80 if you won't use a reverse proxy - "1236:1236" - "8536:8536" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro,Z restart: always depends_on: - pictrs - lemmy-ui logging: *default-logging lemmy: # image: dessalines/lemmy:dev # use this to build your local lemmy server image for development # run docker compose up --build build: context: ../ dockerfile: docker/Dockerfile # args: # RUST_RELEASE_MODE: release # this hostname is used in nginx reverse proxy and also for lemmy ui to connect to the backend, do not change hostname: lemmy networks: - lemmyinternal - lemmyexternalproxy restart: always environment: - RUST_LOG="warn,lemmy_server=debug,lemmy_api=debug,lemmy_api_common=debug,lemmy_api_crud=debug,lemmy_apub=debug,lemmy_db_schema=debug,lemmy_db_views=debug,lemmy_db_views_actor=debug,lemmy_db_views_moderator=debug,lemmy_routes=debug,lemmy_utils=debug,lemmy_websocket=debug" - RUST_BACKTRACE=full volumes: - ./lemmy.hjson:/config/config.hjson:Z depends_on: - postgres - pictrs logging: *default-logging lemmy-ui: image: dessalines/lemmy-ui:0.17.1 # use this to build your local lemmy ui image for development # run docker compose up --build # assuming lemmy-ui is cloned besides lemmy directory # build: # context: ../../lemmy-ui # dockerfile: dev.dockerfile networks: - lemmyinternal environment: # this needs to match the hostname defined in the lemmy service - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536 # set the outside hostname here - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:1236 - LEMMY_HTTPS=false - LEMMY_UI_DEBUG=true depends_on: - lemmy restart: always logging: *default-logging pictrs: image: asonix/pictrs:0.4.0-beta.19 # this needs to match the pictrs url in lemmy.hjson hostname: pictrs # we can set options to pictrs like this, here we set max. image size and forced format for conversion # entrypoint: /sbin/tini -- /usr/local/bin/pict-rs -p /mnt -m 4 --image-format webp networks: - lemmyinternal environment: - PICTRS_OPENTELEMETRY_URL=http://otel:4137 - PICTRS__API_KEY=API_KEY - RUST_LOG=debug - RUST_BACKTRACE=full - PICTRS__MEDIA__VIDEO_CODEC=vp9 - PICTRS__MEDIA__GIF__MAX_WIDTH=256 - PICTRS__MEDIA__GIF__MAX_HEIGHT=256 - PICTRS__MEDIA__GIF__MAX_AREA=65536 - PICTRS__MEDIA__GIF__MAX_FRAME_COUNT=400 user: 991:991 volumes: - ./volumes/pictrs:/mnt:Z restart: always logging: *default-logging postgres: image: postgres:15-alpine # this needs to match the database host in lemmy.hson # Tune your settings via # https://pgtune.leopard.in.ua/#/ # You can use this technique to add them here # https://stackoverflow.com/a/30850095/1655478 hostname: postgres command: [ "postgres", "-c", "session_preload_libraries=auto_explain", "-c", "auto_explain.log_min_duration=5ms", "-c", "auto_explain.log_analyze=true", "-c", "track_activity_query_size=1048576", ] networks: - lemmyinternal # adding the external facing network to allow direct db access for devs - lemmyexternalproxy ports: # use a different port so it doesnt conflict with potential postgres db running on the host - "5433:5432" environment: - POSTGRES_USER=lemmy - POSTGRES_PASSWORD=password - POSTGRES_DB=lemmy volumes: - ./volumes/postgres:/var/lib/postgresql/data:Z restart: always logging: *default-logging
I mean, either of us could be contributing to fix the docs/compose file on github instead of ~~arguing~~ agreeing about it here on ~~reddit~~ lemmy.
Yeah, they should probably have that in the docs as part of the "install docker" step, IIRC such a change takes restarting the docker daemon (which requires restarting all containers), which kinda sucks. I see having this in the compose as a way to prevent people who won't follow the instructions closely from shooting themself in the foot, and then if you know what you're doing you'll probably just strip that stuff out of the config anyways.
Agreed, though it does seem like it is continuing to evolve. As someone who works in DevOps I have learned not to expect devs to worry about or be interested in the actual running of their software. This project is very immature and experience a significant spkie in users, I think stumbling through things at this point is fine as long as lessons are learned and improvements are made (which seems to be happening).
I mean, when I installed lemmy I am pretty sure a significant number of these things (debug settings, logging) weren't even in the example compose file. That is still a pretty funny oversight regardless.